2009-04-04 12:53:03來源不明
最大公因數(GCD)
/**************************************************************/
#include<stdio.h>
#include<stdlib.h>
main()
{ int a,b,temp;
while(scanf("%d %d",&a,&b)==2)
{
while(a%b)
{
temp=a;
a=b;
b=temp%b;
}
printf("%d\n",b);
}
return 0;
}
Mars
2009-06-20 21:03:58
依照你的做法 1 跟 2147483647 不是就會跑死了嗎? 2009-06-21 08:12:58
請問一下這種的問題在哪?
#include<stdio.h>
#include<math.h>
main()
{
int a,b,c,maybe,gcd=1;
while(scanf(”%d %d”,&a,&b)!=EOF)
{
if(b>a)
c=b-a;
else if(a>b)
c=a-b;
else if(a==b)
gcd=a;
for(maybe=c;maybe>0;maybe=maybe-1)
{
if(a%maybe==0&&b%maybe==0)
{a=a/maybe;b=b/maybe;gcd=gcd*maybe;}
}
printf(”%d\n”,gcd);
}
return 0;
}
版主回應
基本上呢,這種題目要模仿輾轉的作法依照你的做法 1 跟 2147483647 不是就會跑死了嗎? 2009-06-21 08:12:58
srtb