更相减损法
更相减损法(求最大公因数的另一种写法)
思路:
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);
}
缺点
如果遇到大数时,可能要减很久,时间复杂度接近
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步