Board logo

標題: [挑戰題]最大公因數 [打印本頁]

作者: 歐柏罕    時間: 2018-4-17 19:59     標題: [挑戰題]最大公因數

本帖最後由 歐柏罕 於 2018-4-17 20:24 編輯

請輸入第一個數:
請輸入第二個數:

利用使用者輸入的兩個數字計算出最大公因數
提示:
30/18=1餘12
18/12=1餘6
12/6=2
  1. public static void main(String[] args) {//主程式
  2.                
  3.                 // TODO 自動產生的方法 Stub
  4.                 System.out.print( gcd(30,18) );
  5.                 //利用副程式(gcd())  , 30和18
  6.                
  7.         }
  8.         /* 輾轉相除法
  9.          * 30/18=1餘12
  10.          * 18/12=1餘6
  11.          * 12/6=2
  12.          */
  13.         public static int gcd(int m, int n){//最大公因數  條件:副程式限制 "值"
  14.                   //m 較大  n 小
  15.                   int result = 1;

  16.                   while(m%n!=0)  //迴圈 兩數相除之餘數  不等於(!=) 0
  17.                   {//條件成立才執行
  18.                           result=n;   //暫存 其中一個值
  19.                           n=m%n;   // 把原本的變數 取代 成 兩數相除之餘數
  20.                           m=result;
  21.                   }
  22.                   //等於0 才會離開 while迴圈
  23.                   result=n;//n 才是答案
  24.                   
  25.                   return result;//回傳結果,限制int
  26.         }
複製代碼

作者: 顏羽彤    時間: 2018-4-17 20:11

此帖僅作者可見
作者: 巫晉宇    時間: 2018-4-17 20:35

此帖僅作者可見
作者: 石光義    時間: 2018-4-17 20:39

此帖僅作者可見
作者: 巫沛庭    時間: 2018-5-1 20:33

此帖僅作者可見




歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2