改错:求最大公约数。题中标记部分可能有错,请改正。

改错:求最大公约数。题中标记部分可能有错,请改正。

时间: 1ms        内存:128M

描述:

#include <iostream>
using namespace std;
int hcf(int m,int n)
{int a,b;
if(n>m){a=m;m=n;n=a;}

**while((b=m/n)!=0)
{m=n;n=b;}
return n;}

int main()
{int x,y,a;
cin>>x>>y;
a=hcf(x,y);
cout<<a;
return 0;}

输入:

输出:

示例输入:

21 9

示例输出:

3

提示:

参考答案(内存最优[1096]):

#include <stdio.h>
int hcf(int m,int n);
int main()
{
    int x,y,a;
    scanf("%d%d",&x,&y);
    a=hcf(x,y);
    printf("%d\n",a);
    return 0;
}

int hcf(int m,int n)
{
    for(int i=(n>m?m:n); i>0; i--)
        if(m%i==0&&n%i==0)return i;
}

参考答案(时间最优[0]):


#include <iostream>
using namespace std;
int hcf(int m,int n)
{int a,b;
if(n>m){a=m;m=n;n=a;}
while((b=m%n)!=0)
{m=n;n=b;}
return n;}


int main()
{int x,y,a;
cin>>x>>y;
a=hcf(x,y);
cout<<a;
return 0;}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注