本题要求实现一个计算两个数的最大公约数的简单函数。
函数接口定义:
int gcd( int x, int y );
其中x
和y
是两个正整数,函数gcd
应返回这两个数的最大公约数。
裁判测试程序样例:
#include <stdio.h>
int gcd( int x, int y );
int main()
{
int x, y;
scanf("%d %d", &x, &y);
printf("%d\n", gcd(x, y));
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
32 72
输出样例:
8
感谢集美大学蓝华斌同学修正测试数据!
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
C (gcc)
正确代码√
int gcd( int x, int y )
{
return x % y ? gcd ( y, x%y ) : y ;
}
正确代码2
int gcd( int x, int y )
{
int n,m;
if(x<y)
{
n=x;
x=y;
y=n;
}
while(y!=0)
{
m=x%y;
x=y;
y=m;
}
return x;
}
正确代码3
int gcd( int x, int y )
{
int t;
if(x>y)
{t=y;}
else
{t=x;}
int i,flag=0;
for(i=t;i=1;i--)
{
if((x%i==0)&&(y%i==0))
{
flag=1;
}
break;
}
while(flag==1)
{
printf("%d",i);
}
}