求最大公约数之——辗转相除法
辗转相除法是以除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数的计算公式。如下: 1997 / 615 = 3 (余 152) 615 / 152 = 4(余7) 152 / 7 = 21(余5) 7 / 5 = 1 (余2) 5 / 2 = 2 (余1) 2 / 1 = 2 (余0) 至此,最大公约数为1。
上代码(JavaScript):
如果递归看不懂,代入上面的例子就看懂啦~
function gcd(num1,num2){
return num2===0?num1:gcd(num2,num1%num2);
}