辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求两个正整数之最大公约数的算法。它是已知最古老的算法, 其可追溯至公元前300年前;
A / B
15 / 4==3 ...............3
4 / 3==1 ...............1
3 / 1==3 ...............0
具体算法如上;
用文字描述就是A除以B如果余数等于0,则两数之间的最大公约数是B,如果不是,原先的B变成A,两数相除的余数变成B,再除,直到除到余数等于0为止,到余数等于0后,两数之间最大公约数就是两数之商;
接下来为c++程序;
int gcd(int a, int b)
{
if(b==0) return a;
return gcd(b,a%b);
}
接下来为c程序
int gcd(int a,int b)
{
return a%b?gcd(b,a%b):b;
}
最后大家给个赞吧,拜拜!!!