XMU OJ.求最大公约数(辗转相除法)

本文讲述了编程学习中重要的心法,特别是谦卑的心态,以欧几里得算法为例,强调实践的重要性。小华通过布置一道经典题让小鲁理解编程中的最大公约数求解,同时介绍了辗转相除法的实现。
摘要由CSDN通过智能技术生成

题目描述:

看着编程热情逐步高涨,并且可以开始运用各种语法的小鲁,小华意识到这是帮助他进一步进阶的时候了。

他喊小鲁过来,嘱咐他说:带着怎样的心学编程很重要,心对了,效果就好,心不对,可能会事倍功半。而编程最需要带着谦卑的心!这意味着我们不要觉得自己比他们聪明,乃要承认自己距离那些历史上的智者有巨大的差距,并且向前人学习。这样的心可以让人恒久成长。

看着云里雾里的小鲁,小华知道他需要实操才能明白这个道理,他给小鲁布置了道经典题:

欧几里得算法又称辗转相除法是总所周知的算法,给定n对正整数a,b,请你求出每对数的最大公约数。

但是有一个条件,请用一行代码完成求最大公约数的运算。

数据范围

1≤n≤10^5,
1≤a,b≤2∗10^9

输入

第一行包含整数n。

接下来n行,每行包含一个整数对a,b。

输出

输出一共n行,每行输出该对整数对的最大公约数

输入样例:

10
111 111
777 777
7777 777
11111 777
16583682 70871575
27870547 47025162
51590293 97432785
4825080 64853463
54282624 58567018
83355874 42258167

输出样例:

111
777
7
1
1
1
1
3
2
7

代码: 

#include<stdio.h>
int main()
{
  int n;
  scanf("%d",&n);
  while(n--)
  {
	int a, b;
	scanf("%d%d",&a,&b);
	if (a == b) 
    {
		printf("%d\n", a);
	}
	else 
    {
		while (a != b) 
        {
			if (a > b)
				a = a - b;
			else
				b = b - a;
		}
		printf("%d\n", a);
    }
  }
  return 0;
}

  • 25
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值