求2个数的最大公约数

  • 求两个数的最大公约数,例如求371,196两个数的最大公约数

第1步:定义两个变量a,b,假如变量a保存的值为371,变量b保存的值为196,先求出两个数的余数并保存在变量r中

  a=371;

 b=196;

r = a%b;或者r=b%a;

   371 %  196 = 1   余  175

   或者 196 % 371 = 0 余   196

第二步:使用while循环判断余数r的值是否不为0

while(r != 0)

{

}

第三步:除数b的值变成被除数a的值,余数r的值变成除数b的值,重新计算余数r的值

a = b;

b = r;

r=a%b;

第四步:最后除数b的值就是两个数的最大公约数的值

整个计算方法,写成函数如下

int greatestCommonMeasure(int a,int b)
{
	int r = a % b;  // 求出两个数的余数
	while( r != 0)  // 余数是否为0
	{
		a = b;     // 除数变成被除数
		b = r;     // 余数变成除数
		r = a % b;  // 重新计算两数的余数
	}
	return b;    //返回两个数的最大公约数
}

为什么不需要判断最大数,其实不需要,这里巧妙地进行规避了,假如上例中,先求出196%371的余数,商为0,余

数为196,在while循环中,除数371变成被除数了,余数r变成除数,这样就纠正成最大数和最小数的求余,所以不需要

对两个数进行最大最小判断后来求余

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风雨依依

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值