c語言編寫 求最大公約數(使用更相減損術)

2021-09-25 10:35:57 字數 558 閱讀 3865

以較大的數減較小的數,接著把所得的差與較小的數比較,並以大數減小數。繼續這個操作,直到所得的減數和差相等為止。**

#include

int get_common(int a,int b) //更像減損就是用大數減小數,再用減過後的數與之前較小數比較,再用大數減小數,直至兩數相等

else if (a > b)

else if (a < b)

get_common(a, b);int main()

{

int a = 500;

int b = 28;

int com; //最大公約數

com = get_common(a, b); //不符合條件直接使用更像減損法

printf("求%d與%d的最大公約數\n", a,b);

printf("最大公約數為:%d\n", com);

return 0;

執行結果為

求最大公約數

最新用了三種演算法實現了求最大公約數的演算法,用的c 寫的,最大公約數也是我們生活中常見的問題 1 窮舉法 主要 如下 if a b for i 1 i a i 演算法分析 窮舉法先將a,b兩值比較大小並且互換,再進行與各種數的整除,如果這個數能同時被a,b整除,那麼這個數就為最大公約數,這種演算法...

求最大公約數

暴力列舉法很簡單,從較小整數的一班開始,試圖找到乙個合適的整數i,檢查這個整數i是否被a和b同時整除 暴力列舉法求最大公約數 param a param b return public static int getgreatestcommondivisor v1 int a,int b for in...

求最大公約數

1.輾轉相除法 a.具體思路 兩個正整數a和b a b 它們的最大公約數等於a除以b的餘數c和b之間的最大公約數。比如10和25,25除以10商2餘5,那麼10和25的最大公約數,等同於10和5的最大公約數。有點類似動態規劃的思想,逐步減小問題規模,最後求到問題的解。int test1 int a,...