辗转相除法
辗转相除法是用来求最大公因数的(例如8和12的最大公因数为4) 直接上代码:
function gcd(a,b){ if (b == 0){ return a; } var r = parseInt(a % b) ; return gcd(b, r); }
可以将a和b都看成:
最大公因数*(数1+数2+.....)
通过不断递归求余,不断将小括号里面的数变小,最后一定会有一边的数先变成1,这个时候剩下的就是:
最大公因数*1
用另一边的数求余这个得到最大公因数为0(就是if(b == 0)),这时我们就知道这个上面这个就是我们要的最大公因数了~~