更相减损法设计
首先这个方法是为了求出两个数字的最大公约数,实现的方法就是:
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