改错:求最大公约数。题中标记部分可能有错,请改正。
时间: 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;}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。