最大公约数算法以及c++实现
问题引入
求42与49的最大公约数。
更相减损法
算法过程:
将两个数中的较大值减去较小值替代较大值,反复如此直到相等。
42 49
42 7
35 7
28 7
21 7
14 7
7 7
其意义很容易明白,首先两个正整数a,b之间肯定存在一个最大公约数r,如果a>b,那么(a-b)与b之间的最大公约数也一定是r,反之亦然,最终迭代到两个数相等即为最大公约数。
辗转相除法
辗转相除法是更相减损法的改进,还是求42与49的最大公约数,在求到42,7之后发现需要不断地减去7,实际上就是减去42%7-1个
原创
2020-09-07 20:38:42 ·
332 阅读 ·
0 评论