【问题描述】编写递归函数求两个数的最大公约数。推荐函数名及参数类型:【int Gcd(int m,int n)】
提示:调用函数前确保m大于n
算法: 形参n做m,求余做n。出口条件:当n=0,返回m。
【输入形式】输入两个数用逗号隔开
【输出形式】输出最大公约数
【样例输入】24,36
【样例输出】12
//递归函数
#include<stdio.h>
int Gcd(int m,int n)//辗转相除法
{
int t,f;
if(n==0)
f= m;
else
f=Gcd(n,m%n);
return f;
}
int main()
{
int m,n,t,y;
scanf("%d,%d",&m,&n);
if(m<n)
{
t=m,m=n,n=t;
}
y=Gcd(m,n);
printf("%d",y);
return 0;
}
//调用函数
#include<stdio.h>
int Gcd(int m,int n)
{
int t;
if(m<n)
{
t=m,m=n,n=t;
}
while(m%n)
{
t=m%n;
m=n;
n=t;
}
return n ;
}
int main()
{
int m,n,y;
scanf("%d,%d",&m,&n);
y=Gcd(m,n);
printf("%d",y);
return 0;
}