更相减损法(求最大公因数的另一种写法)
思路:
1.如果两数相等,返回其中一个
2.如果两个数都是偶数,那么同时除以2,否则进入3
3.将两数中大者减去两数中小者,然后再用差值和减数中的大者减小者,直到差值和减数相等
4.将除以2时所除去2的积乘以等数(最后差值和减数相等的值)即为最大公因数
int gcd(int x, int y) {
if (x == y) return x;
else if (x > y) return gcd(x - y, y);
else return gcd(x, y - x);
}
缺点
如果遇到大数时,可能要减很久,时间复杂度接近\(O(n)\)
标签:return,gcd,更相,int,减损,减数 From: https://www.cnblogs.com/lbzbk/p/17347505.html