实验5-11 使用函数求最大公约数(10 分)
本题要求实现一个计算两个数的最大公约数的简单函数。
函数接口定义:
1
| int gcd( int x, int y );
|
其中x
和y
是两个正整数,函数gcd
应返回这两个数的最大公约数。
裁判测试程序样例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #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; }
|
输入样例:
输出样例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| #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; }
int gcd(int x,int y) { int r,t; if(x<y) { t=x; x=y; y=t; } while ((r=x%y)!=0) { x=y; y=r; } return y; }
int gcd( int x, int y ) { int i; for(i=x;i>=1;i--){ if(x%i==0&&y%i==0) break; } return i; }
int gcd(int x,int y) { int r; while (y) { r=x%y; x=y; y=r; } return x; }
|