主题:求两个数的公约数
normalpeople
[专家分:50] 发布于 2007-04-29 23:08:00
怎么求两个数的公约数?无限感激!
回复列表 (共7个回复)
沙发
liaojichu [专家分:340] 发布于 2007-04-30 00:48:00
首先弄清楚两个数的公约数的定义吧!把这个弄明白了,我想就不难了吧!
板凳
normalpeople [专家分:50] 发布于 2007-04-30 20:31:00
我有编过一个,但老是错误,你能帮我编一个吗?Many thanks!
3 楼
pink_robin [专家分:30] 发布于 2007-04-30 20:43:00
可以这样写:
int GCD(int a,int b)
{
if(a>b)
{
int temp=a;
a=b;
b=temp;
}
if(b%a==0)
{
return a;
}
else return GCD(a,b%a);
}
这是个递归的写法,还有很多种写法。
4 楼
Zero1 [专家分:710] 发布于 2007-05-01 00:09:00
int gcd(int m,int n)
{
if(n == 0)
return m;
return gcd(n,m % n);
}
5 楼
normalpeople [专家分:50] 发布于 2007-05-06 13:21:00
这种方法确实没想过!谢啦!
6 楼
xiaoping814 [专家分:30] 发布于 2007-05-06 14:32:00
{int a,b,n,m,gcd;
scanf("%d,%d",&a.&b);
if(b>a)
{n=a;
a=b;
b=n;
}
while((m=a%b)!=0)
{a=b;
b=m;
}
gcd=m;
printf("%d\n",gcd);
}
我也是新手哦,大家要扶我一把哦,谢了!!!
7 楼
清枫流影 [专家分:290] 发布于 2007-05-09 16:16:00
[quote]
int gcd(int m,int n)
{
if(n == 0)
return m;
return gcd(n,m % n);
}[/quote]
这个很厉害[em5]
我来回复