原文:
第一步:任意给定两个正整数;判断它们是否都是偶数。若是,则用2约
简;若不是则执行第二步。
第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并
以大数减小数。继续这个操作,直到所得的减数和差相等为止。
则第一步中约掉的若干个2与第二步中等数的乘积就是所求的最大公约数
int biggest(int a,int b){
while(a!=b){
if(a>b){
int c = a-b;
a=b;
c=c;
}else if(a<b){
int c = b-a;
b=a;
a=c;
}
}
reutrn a;
}
修改后:
第一步:任意给定两个正整数;判断它们是否都是偶数。若是,则用2约
简;若不是则执行第二步。
第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并
以大数减小数。继续这个操作,直到所得的减数和差相等为止。
则第一步中约掉的若干个2与第二步中等数的乘积就是所求的最大公约数
。
int biggest(int a,int b){
int c,d=1;
while(a%2==0&&b%2==0){
a%=2;
b%=2;
d*=2;
}
while(b!=a){
if(a<b){
c=a;
a=b;
b=c;
}
c=a-b;
a=b;
b=c;
}
return a*d;
}