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;    
}

上一篇:迴文

下一篇:階乘運算

srtetb 2010-06-01 20:59:22

srtb

Mars 2009-06-20 21:03: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