最大公約數

接着上一篇,還是在柴田望洋的明解C語言看到的,通過遞歸求最大公約數。先看代碼:

/*
	求最大公約數
*/

#include<stdio.h>

int fuc2(int x,int y) {   //  返回最大公約數(x>=y)
	return (y==0?x:fuc2(y,x%y));
}

int fuc1(int x,int y) {   //  求出最大公約數
	return (x>y?fuc2(x,y):fuc2(y,x));
}

int main() {
	int a,b;

	printf("請輸入兩個整數:\n");
	printf("整數1:");      scanf("%d",&a);
	printf("整數2:");      scanf("%d",&b);

	printf("兩個整數最大公約數是%d\n",fuc1(a,b));

	return 0;
}




運行結果:

思考一下求兩個整數的最大公約數的方法。把兩個整數當成一個長方形的長和寬,把這個長方形分成幾個正方形,餘下一個長方形,又把餘下的這個長方形分成幾個正方形,餘下一個長方形,直到全部都爲正方形爲止。這時候最小正方形的邊長就是兩個整數的最大公約數了~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章