本题要求实现一个计算两个数的最大公约数的简单函数。
函数接口定义: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
我看了不少人写的题解,感觉太麻烦了就自己写了个简单的
#include<stdio.h>
int gcd(int x,int y)
{
int max=0,i=1;
while(x>=i && y>=i){ //保证最大公约数小于两个输入的数
if(x%i==0 && y%i==0){ //判断i是否是x,y的公约数
max = i; //是x,y的公约数,就赋值给max
}
i++;
}
return max;
}
int main()
{
int x,y;
scanf("%d %d",&x,&y);
printf("%d\n",gcd(x,y));
return 0;
}