|
10鱼币
第一个算法我想用递归实现辗转相除法求最大公约数,可是怎么返回当c=0时b的值呢?第二个算法设两个整数为x、y 如果x=y,则最大公约数与x值(y值)相同;
如果x>y,则最大公约数与x-y和y的最大公约数相同;
如果x<y,则最大公约数与x和y-x的最大公约数相同。
可是没有实现是肿么回事- -,求指教啊,急................
#include<stdio.h>
int divide(int a,int b);
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)==2)
printf("(%d %d)=%d\n",a,b,divide(a,b));
return 0;
}
int divide(int a,int b)
{
int c;
c=a%b;
printf("c:%d,a:%d,b:%d\n",c,a,b);
if(c!=0)
divide(b,c);
printf("c:%d,a:%d,b:%d\n",c,a,b);
return b;
}
/*
int divide(int a,int b)
{
if(a>b)
divide(a-b,b);
else if(a<b)
divide(a,b-a);
else
return b;
}
*/
|
|