辗转相除法C语言求大神指教
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/08/04 19:06:06
辗转相除法C语言求大神指教
#include<stdio.h>
void main()
{
\x05int acd(int m1,int m2);
\x05int x,y,a,b,t;
\x05printf("Please enter two number:\n");
\x05scanf("%d,%d",&x,&y);
\x05if(x>y)
\x05{t=x;x=y;y=t;}
\x05a=acd(x,y);
\x05b=(x*y)/a;
\x05printf("最大公约数为=%d\n最小公倍数为=%d\n",a,b);
}
int acd(int m1,int m2)
{
\x05int r;
\x05while(r!=0)
\x05{
\x05\x05r=m2%m1;m2=m1;m1=r;
\x05}
\x05return r;
}
执行之后居然出现了如图结果!请问是怎么回事?
#include<stdio.h>
void main()
{
\x05int acd(int m1,int m2);
\x05int x,y,a,b,t;
\x05printf("Please enter two number:\n");
\x05scanf("%d,%d",&x,&y);
\x05if(x>y)
\x05{t=x;x=y;y=t;}
\x05a=acd(x,y);
\x05b=(x*y)/a;
\x05printf("最大公约数为=%d\n最小公倍数为=%d\n",a,b);
}
int acd(int m1,int m2)
{
\x05int r;
\x05while(r!=0)
\x05{
\x05\x05r=m2%m1;m2=m1;m1=r;
\x05}
\x05return r;
}
执行之后居然出现了如图结果!请问是怎么回事?
#include<stdio.h>
int acd(int,int);
void main()
{
int x,y,a,b,t=0;
printf("Please enter two number:\n");
scanf("%d,%d",&x,&y); // 两数之间用逗号隔开
if(x>y){
t=x;
x=y;
y=t;
}
a=acd(x,y);
b=(x*y)/a;
printf("最大公约数为=%d\n最小公倍数为=%d\n",a,b);
}
int acd(int m1,int m2)
{
int r;
r=m1;
if(r==1) return 1;
while(r)
{
if(m1%r==0&&m2%r==0) return r;
--r;
}
return -1;
}
再问: 大神好厉害~话说我定义的那种函数算法不对吗?能不能尽量在我的这个基础上改正呢?
再答: #include<stdio.h>
int acd(int,int);
void main()
{
int x,y,a,b,t=0;
printf("Please enter two number:\n");
scanf("%d,%d",&x,&y); // 两数之间用逗号隔开
if(x>y){
t=x;
x=y;
y=t;
}
a=acd(x,y);
b=(x*y)/a;
printf("最大公约数为=%d\n最小公倍数为=%d\n",a,b);
}
int acd(int m1,int m2)
{
int r; // r作为余数
if(r==1) return 1;
r=m2%m1; // 取余数
while(r) // 余数不为0
{
r=m2%m1; // 反复取余数直至r余数为0
m2=m1; // 反复令上一个余数作为下一轮的被除数
m1=r; // 反复令当前余数作为下一轮的除数
}
return m2; // m2就是最后一次的除数.也就是最大公约数。
}
int acd(int,int);
void main()
{
int x,y,a,b,t=0;
printf("Please enter two number:\n");
scanf("%d,%d",&x,&y); // 两数之间用逗号隔开
if(x>y){
t=x;
x=y;
y=t;
}
a=acd(x,y);
b=(x*y)/a;
printf("最大公约数为=%d\n最小公倍数为=%d\n",a,b);
}
int acd(int m1,int m2)
{
int r;
r=m1;
if(r==1) return 1;
while(r)
{
if(m1%r==0&&m2%r==0) return r;
--r;
}
return -1;
}
再问: 大神好厉害~话说我定义的那种函数算法不对吗?能不能尽量在我的这个基础上改正呢?
再答: #include<stdio.h>
int acd(int,int);
void main()
{
int x,y,a,b,t=0;
printf("Please enter two number:\n");
scanf("%d,%d",&x,&y); // 两数之间用逗号隔开
if(x>y){
t=x;
x=y;
y=t;
}
a=acd(x,y);
b=(x*y)/a;
printf("最大公约数为=%d\n最小公倍数为=%d\n",a,b);
}
int acd(int m1,int m2)
{
int r; // r作为余数
if(r==1) return 1;
r=m2%m1; // 取余数
while(r) // 余数不为0
{
r=m2%m1; // 反复取余数直至r余数为0
m2=m1; // 反复令上一个余数作为下一轮的被除数
m1=r; // 反复令当前余数作为下一轮的除数
}
return m2; // m2就是最后一次的除数.也就是最大公约数。
}
c语言辗转相除法求最大公约数
C语言 求最大公约数 辗转相除法的问题
什么是辗转相除法怎样用c语言编程实现,用辗转相除法求两个数的最大公约数
C语言 用辗转相除法求最大公约数 编写C语言程序
C语言程序填空:用辗转相除法求两个整数的最大公约数、最小公倍数.
C语言程序:用“辗转相除法”求两个正整数的最大公约数(程序填空)
C语言程序 设计:用辗转相除法求两个正整数的最大公约数
C语言程序填空:用辗转相除法求两个整数的最大公约数 帮帮
用欧几里得算法(辗转相除法)求最大公约数,C语言编程
c语言编写程序用辗转相除法求两个正整数m和n的最大公约数
C语言序填空题 用辗转相除法求2正整数的最大公约数
辗转相除法求最大公约数