C语言:用递归实现辗转相除法和辗转相减法求最大公约数和最小公倍数,下面2个程序错了,帮我改改,
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/10 10:37:00
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)) ;
}
我知道正确的程序,可是我这个错哪里了啊,还是根本连思路就错了,我递归学的很差,
//辗转相减法
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)) ;
}
我知道正确的程序,可是我这个错哪里了啊,还是根本连思路就错了,我递归学的很差,
这是两个算法的代码,主函数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);
}
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);
}
C语言:用递归实现辗转相除法和辗转相减法求最大公约数和最小公倍数,下面2个程序错了,帮我改改,
C语言:关于用辗转相除法递归求最大公约数,下面的程序有错误,请帮我改一下,
c语言编写程序用辗转相除法求两个正整数m和n的最大公约数
C语言程序填空:用辗转相除法求两个整数的最大公约数、最小公倍数.
用辗转相除法示最大公约数和最小公倍数?(C语言)
编写一个程序(C语言):给出两个正整数,求他们的最大公约数和最小公倍数.(主要是辗转相除法怎么用)
c语言辗转相除法求最大公约数
什么是辗转相除法怎样用c语言编程实现,用辗转相除法求两个数的最大公约数
C语言 用辗转相除法求最大公约数 编写C语言程序
用辗转相除法求两数的最小公倍数和最大公约数 VB
C语言程序:用“辗转相除法”求两个正整数的最大公约数(程序填空)
输入两个正整数m和n,求它们的最大公约数和最小公倍数(本题要求用辗转相除法实现)