c语言——更相减损法

更相减损法设计

首先这个方法是为了求出两个数字的最大公约数,实现的方法就是:
01:两个数字先进行判断是不是都是偶数,是的话,用2约分。

02: 循环判断直到两个数不同时为偶数的时候进行下一步,比较两个数字的大小,用大的数字减去小的数字,,重复操作,直到减数和差相等,

03:这个时候得出来的差和约去的n 个2的乘积就是最大公约数

设计思路

01:定义一个flag记录约去2的个数
02:使用while循环更相相减

while(a != b)
{
   
    
  while(a>b)
  {
   
   
    a = a -b;
  }
  while(b>a)
  {
   
   
   b = b-a;
  }
}

这里的话实际上用函数写循环更方便,在while(){}里面加上的是if(){}的大小的判断语句,这样一直调用会更好
03:输出控制

代码

/*
1.任意给定两个正整数;判断它们是否都是偶数。若是,则用2约简;若不是则执行第二步;

2.以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继
续这个操作,直到所得的减数和差相等为止。

3.第一步中约掉的若干个2与第二步中等数的乘积就是所求的最大公约数

*/

#include <stdio.h>

int main
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值