返回列表 發帖

[挑戰題]最大公因數

本帖最後由 歐柏罕 於 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.         }
複製代碼

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

返回列表