本帖最後由 歐柏罕 於 2018-4-17 20:24 編輯
請輸入第一個數:
請輸入第二個數:
利用使用者輸入的兩個數字計算出最大公因數
提示:
30/18=1餘12
18/12=1餘6
12/6=2- public static void main(String[] args) {//主程式
-
- // TODO 自動產生的方法 Stub
- System.out.print( gcd(30,18) );
- //利用副程式(gcd()) , 30和18
-
- }
- /* 輾轉相除法
- * 30/18=1餘12
- * 18/12=1餘6
- * 12/6=2
- */
- public static int gcd(int m, int n){//最大公因數 條件:副程式限制 "值"
- //m 較大 n 小
- int result = 1;
- while(m%n!=0) //迴圈 兩數相除之餘數 不等於(!=) 0
- {//條件成立才執行
- result=n; //暫存 其中一個值
- n=m%n; // 把原本的變數 取代 成 兩數相除之餘數
- m=result;
- }
- //等於0 才會離開 while迴圈
- result=n;//n 才是答案
-
- return result;//回傳結果,限制int
- }
複製代碼 |