题目转自南邮编程在线:njupt.housecode.cc
实现求两个正整数的最大公约数。
说明:(1)从键盘输入两个正整数;
(2)输出这两个正整数的最大公约数;
测试用例:输入 | 测试用例:输出 |
345 258< 回车 > | gcd=3 |
33 33< 回车 > | gcd=33 |
24 72< 回车 > | gcd=24 |
代码如下:
#include <stdio.h>
int main()
{
int a, b, r = 1, gcd;
scanf("%d%d", &a, &b);
while(r != 0){ //使用辗转相除法求最大公约数
if(b > a){
int i = b;
b = a;
a = i;
}
gcd = b;
r = a % b;
a = b;
b = r;
}
printf("gcd=%d", gcd);
return 0;
}
本题考察了while循环语句和求最大公约数的辗转相除法(欧几里得算法)