C语言,用递归函数求最大公约数

2025-02-22 09:02:27
推荐回答(2个)
回答1:

#include
int gcd(int a,int b)
{if(a%b==0)return b;
 return gcd(b,a%b);
}
int main()
{int a,b;
 scanf("%d%d",&a,&b);
 printf("%d\n",gcd(a,b));  
 return 0;
}

回答2:

//用递归求最大公约数
//我给你简化并改了一下可以用了
#include
int gcd(int m,int n);
int main()
{
int m,n;
printf("Input m,n:\n");
scanf("%d%d",&m,&n);
printf("%d\n",gcd(m,n));
}
int gcd(int m,int n)
{
if(m>n)//大于和小于只要"<"或">"就够了,不需要两个
return gcd(m-n,n);
else if(m return gcd(m,n-m);
else if(m==n)
return m;
}