題目:輸入兩個數n1和n2,輸出它們的最大公約數
例: 輸入12 18
輸出6分析:計算機最擅長列舉。可以先找出兩個數中的最小數字,用min儲存下來,作為迴圈的條件,然後依次判斷1~min之間的數字,看其是否滿足:能同時整除n1與n2,記下這個數字t。知道迴圈結束,則曾經記下的t的最大值就是n1與n2的最大公約數。
方法一:「列舉法」
「列舉」具體步驟如下--->
1.設t為1
2.如果u和v都能被t整除,則記下這個t
3.t加1後重複第2步,直到t等於u或v
4.那麼曾經記下的最大的可以同時整除u和v的t就是最大公約數
**:
寫法一:先找出最小數min,以min作為約束條件
#define _crt_secure_no_warnings 1
#include#includeint main()
//列舉求最大公約數
for (i = 1; i <= min; i++) }
printf("最大公約數為%d\n", t);
system("pause");
return 0;
}
寫法二: 直接用邏輯判斷找出最小數
#define _crt_secure_no_warnings 1
#include#includeint main()
} printf("最大公約數為%d\n", t);
system("pause");
return 0;
}
方法二:輾轉相除法步驟-->
1.如果b等於0,計算結束,a就是最大公約數
2.否則,計算a除以b的餘數,讓a等於b,而b等於那個餘數
3.回到第1步
printf("最大公約數為%d\n", a);
system("pause");
return 0;
}
求兩個數最大公約數
題目 寫乙個程式,求兩個正數的最大公約數。如1100100210001,120200021,求其最大公約數 分析 設兩個數分別為x,y 求其最大公約數f x,y 如果有x 2 0而y 2不等於0,那麼可以 約簡為f x 2,y 同樣道理適用於y 如果x與y都是偶數,那麼最大公約數可以為f x 2,y...
求兩個數的最大公約數
求公約數有多種方法,在這主要介紹兩種方法。1 更相減損之術 以兩數中較大的數減去較小的數,獲得的差與原先較小的數構成新的一對數,在以大的數減去小的數,依次迴圈。用同樣的方法操作,直至產生一對相等的數為止,該數即為最大公約數。include include intmain while n 0 if a...
求兩個數的最大公約數
下面用兩種方法求兩個數的最大公約數 第一種,用遞減迴圈從較小的數開始到0依次查詢能同時整除兩個數的數,則這個數就為這兩個數的最大公約數,如下 include include int main else for i tmp i 0 i system pause return 0 第二種方法,輾轉相除法...