已经有几种常见方法,以辗转相除法为例:
function gcd(a, b) { if (a % b === 0) { return b; } return arguments.callee(b, a % b); } console.log(gcd(28, 12)); // 4 console.log(gcd(7890, 123456)); // 6 console.log(gcd(5, 13)); // 1 (公约数为1说明两数互质)
更相减损法:
// 更相减损法 function gcd(a, b) { if (a === b) { return b; } if (a > b) { a -= b; } else { b -= a; } return arguments.callee(a, b) } console.log(gcd(28, 12)); // 4 console.log(gcd(7890, 123456)); // 6 console.log(gcd(5, 13)); // 1 (公约数为1说明两数互质)
如对本文有疑问, 点击进行留言回复!!
JavaScript 好题汇总分享(持续更新,看到好题就写)
XMLHttpRequest 2级 &&进度事件&&JSONP
使用递归原生实现拷贝&&最简单的方法实现深拷贝
网友评论