辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。它的具体做法是:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。
设两数为a、b(a≥b),求a和b最大公约数
的步骤如下:
(1)用a除以b(a≥b),得
。
(2)若
,则
;
(3)若
,则再用b除以
,得
.
(4)若
,则
;若
,则继续用
除以
,......,如此下去,直到能整除为止。
其最后一个余数为0的除数即为
的最大公约数。
int getGCD(int a, int b) {
if (a % b == 0) {
return b;
}
return getGCD(b, a % b);
}
274

被折叠的 条评论
为什么被折叠?



