求a,b的最大公约数,有递归和循环两种方法。
递归:
#include<stdio.h>
int gcd(int a,int b)
{
if(b==0)
return a;
gcd(b,a%b);
}
int main()
{
int a,b;
while(~scanf("%d %d",&a,&b))
printf("最大公约数为%d\n",gcd(a,b));
return 0;
}
循环:
#include<stdio.h>
int gcd(int a,int b)
{
int t;
while(b!=0)
{
t=a;
a=b;
b=t%b;
}
return a;
}
int main()
{
int a,b;
while(~scanf("%d %d",&a,&b))
printf("最大公约数为%d\n",gcd(a,b));
return 0;
}
输出示例
12 6
最大公约数为6
60 15
最大公约数为15
15 35
最大公约数为5
56 32
最大公约数为8