最大公约数函数.
我只能一步步的减一(或加一)以得到约数,请问各位有没有更好的算法可以更快的求出最大公约数????submultiple(int a,int b)
{int i;
if(a*b==0) printf("I cann't make sure!"); /*要是有零就不知道怎样处理了!这里是否也要加一个"return()"?????????*/
else {if(abs(a)>abs(b)) i=b; /*又要处理正负数的问题*/
else i=a;
for(;i>=1;i--) /*我只能一步步的减一以得到约数*/
if(a%i==0&&b%i==0){return(i);break;}
for(;i<=-1;i++)
if(a%(-i)==0&&b%(-i)==0){return(-i);break;}
}
}
[此贴子已经被作者于2006-4-12 15:16:43编辑过]