
不太能看懂这个代码后面改的地方为什么要来回赋值
尤其是a=d那一步
- 辗转相除法:取两个数中最大的数做除数,较小的数做被除数,用最大的数除较小数,如果余数为0,则较小数为这两个数的最大公约数,如果余数不为0,用较小数除上一步计算出的余数,直到余数为0,则这两个数的最大公约数为上一步的余数。
- 图中的表示是伪代码,a = d 表示 把 d 赋值给 a (等号右边赋值给左边)
- a表示第一个数,b表示第二个数,要求这两个数的最大公约数可以用辗转相除法,结合辗转相除法的定义就不难理解代码的思路了
这个是辗转相除法,出自九章算术,欧几里得也提出类似的算法,是一个特定的算法。