求最大公约数(请高手看下错在哪??)
来源:百度知道 编辑:UC知道 时间:2024/06/08 18:13:57
#include"stdio.h"
void main()
{
int m,n,k;
printf("Enter m,n(>0):");
scanf("%d%d",&m,&n);
printf("the greatest common divisor of %d and %d\n",m,n);
do
{
k=m%n;
m=n;
n=k;
}while(n!=0);
printf("is %d.\n",m);
}
void main()
{
int m,n,k;
printf("Enter m,n(>0):");
scanf("%d%d",&m,&n);
printf("the greatest common divisor of %d and %d\n",m,n);
do
{
k=m%n;
m=n;
n=k;
}while(n!=0);
printf("is %d.\n",m);
}
#include"stdio.h"
void main()
{
int m,n,k;
printf("Enter m,n(>0):");
scanf("%d,%d",&m,&n);//运行下来没有错,算法是对的,主要是这里的输入格式改一下,按照你原来的方式,输入m和n的值是中间得用空格分开,这样改,你就可以用逗号分开了,
printf("the greatest common divisor of %d and %d\n",m,n);
do
{
k=m%n;
m=n;
n=k;
}while(n!=0);
printf("is %d.\n",m);
}
两个数的最大公约数?
欧几里德算法
//递归实现
int gcd(int m,int n)
{
if (m < n)
{
int tmp = m;
m = n;
n = tmp;
}
if (n == 0)
return m;
else
return gcd(n,m % n);
}
/////////////////////////////
//非递归实现
int gcd2(int m,int n)
{
if (m < n)
{
int tmp