题目1056:最大公约数

题目1056:最大公约数

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:4299

解决:2791

题目描述:

输入两个正整数,求其最大公约数。

输入:

测试数据有多组,每组输入两个正整数。

输出:

对于每组输入,请输出其最大公约数。

样例输入:
49 14
样例输出:
7
来源:
2011年哈尔滨工业大学计算机研究生机试真题

c++代码:
//1056 最大公约数
//默认两个正整数
//对于阿基米德法求最大公约数
//如果有两个0,则不存在;有一个0为非0那个,
//否则一直辗转到最后一定有一个为0 

#include


//非递归版 
int gcd(int x, int y)
{
	while(y != 0)
	{
		int t = x%y;
		x = y;
		y = t;
	}
	return x;
}


//递归版 
int gcd(int x, int y)
{
	if(y == 0)
		return x;
	gcd(y,x%y);
}
int
main(void)
{
	int a, b;
	
	while(~scanf("%d%d", &a, &b))
	{
		printf("%d\n", gcd(a,b));
	}
} 


你可能感兴趣的:(九度ACM,九度解题报告)