//递归版本
#include<stdio.h>
int gcd(int a,int b)
{
if(b==0)
{
return a;
}
else
{
return gcd(b,a%b);
}
}
int main()
{
int a,b=0;
while(scanf("%d%d",&a,&b)!=EOF)
{
printf("%d\n",gcd(a,b));
}
}
////非递归版本
#include<stdio.h>
int gcd(int a,int b)
{
while(b!=0)
{
int t=a%b;
a=b;
b=t;
}
return a;
}
int main()
{
int a,b=0;
while(scanf("%d%d",&a,&b)!=EOF)
{
printf("%d\n",gcd(a,b));
}
}
//单行实现
int gcd(int a, int b){return b == 0? a : gcd(b, a % b);}
本文深入探讨了最大公约数(GCD)的计算方法,通过递归和非递归两种方式实现了算法,并提供了完整的C语言代码示例。文章详细解释了每种方法的实现原理,为读者提供了理解和应用GCD算法的基础。
5407

被折叠的 条评论
为什么被折叠?



