C语言:用递归实现辗转相除法和辗转相减法求最大公约数和最小公倍数,下面2个程序错了,帮我改改,//辗转相减法int main(){int m,n;int gcd(int m,int n);int min(int m,int n);scanf("%d %d",&m,&n);printf("最大公约

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/25 19:24:32
C语言:用递归实现辗转相除法和辗转相减法求最大公约数和最小公倍数,下面2个程序错了,帮我改改,//辗转相减法int main(){int m,n;int gcd(int m,int n);int min(int m,int n);scanf(
xTNA~) fvMor'JŽd`ӊZR(V  yf =;3hM%fsw9ve~[库/agև}sh֧S?*7Eh}ci;}״f>.)Bq9|oX]:(:xi0w>+bEDB1"9H|Y|G|xIK&t:O8JW :ms3$ntya;bd4@p@v/62vr"j4^F6tn^,un`ъTx2ʱQX<*I ~O #XMxy&HD͇x#F$w\*~]S=Ϥ㛺V>sօŰfƴ6`GUhqhnzp {ۣ#|~e4љ?{m!i]BLzC{(` (H7\!\ /-~M CȂs *-#O+B uQ/Ofy-D9U ҪXdTɫ91GBM?¸i2!,}b!5u"w X_'W*D a:+

C语言:用递归实现辗转相除法和辗转相减法求最大公约数和最小公倍数,下面2个程序错了,帮我改改,//辗转相减法int main(){int m,n;int gcd(int m,int n);int min(int m,int n);scanf("%d %d",&m,&n);printf("最大公约
C语言:用递归实现辗转相除法和辗转相减法求最大公约数和最小公倍数,下面2个程序错了,帮我改改,
//辗转相减法
int main()
{
int m,n;
int gcd(int m,int n);
int min(int m,int n);
scanf("%d %d",&m,&n);
printf("最大公约数:%d 最小公倍数:%d",gcd(m,n),min(m,n));
getch();
return 0;
}
int gcd(int m,int n)
{
int r,max,min;
if(m>n)
max=m;
else
min=n;
while((r=max-min)!=0)
gcd(min,r);
return n;
}
int min(int m,int n)
{
return ((m*n)/gcd(m,n)) ;
}
#include
int main()
{
int m,n;
int gcd(int m,int n);
int min(int m,int n);
scanf("%d %d",&m,&n);
printf("最大公约数:%d 最小公倍数:%d",gcd(m,n),min(m,n));
getch();
return 0;
}
//辗转相除法
int gcd(int m,int n)
{
int r;
while((r=m%n)!=0)
gcd(r,n);
printf("最大公约数:%d ",n);
return n;
}
int min(int m,int n)
{
return ((m*n)/gcd(m,n)) ;
}
我知道正确的程序,可是我这个错哪里了啊,还是根本连思路就错了,我递归学的很差,

C语言:用递归实现辗转相除法和辗转相减法求最大公约数和最小公倍数,下面2个程序错了,帮我改改,//辗转相减法int main(){int m,n;int gcd(int m,int n);int min(int m,int n);scanf("%d %d",&m,&n);printf("最大公约
这是两个算法的代码,主函数main()自己写,很简单 .
int gcd(int x,int y) //辗转相除法求最大公约数
{
int z;
do
{z=x%y;
x=y;
y=z;
}while(z!=0);
return x;
}
int gcd(int n,int m) { //这是递归
if (n%m==0)
return m;
else
return gcd(m,n%m);
}