嘛!!今天想求最大公约数的,没想到竟然卡壳了!悲剧,虽然感觉这个是很简单,但是,没有理解透彻果然还是会忘的= = !
还是先举个例子先:
求m和n的最大公约数。设最大公约数为r
则 m= ar ,n=br。
设c=m-n=r(a-b)
所以m,n和c 有相同的最大公约数
举个实例,m=98 ,n=63
98-63=35;
63-35=28;
35-28=7;
28-7=21;
21-7=14;
14-7=7;
7-7=0;
所以最大公约数就是7
知道了这个原理之后,代码就应该不难忘了!
int gcd(int a,int b)
{
int c;
while(b!=0)
{
c=a;
a=b;
b=c%b;
}
return a;
}