本题要求实现一个计算两个数的最大公约数的简单函数。
函数接口定义:
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
结尾无空行
示例答案:
int gcd( int x, int y ){
int yue,t,k,i,min;
if(x>=y)
min=y;
else min=x;//判断x和y哪个更小,并将较小的赋值给min
t=x%min;
k=y%min;//t和k是x和y对min的取余
for(i=min;t!=0||k!=0;min--){
t=x%min;k=y%min;
if(t==0&&k==0)
break;//此时余数为零,是最大公约数,跳出循环
}
return min;
}