简易理解版:
举例:
要求195与36的最大公约数,用辗转相除法:
195/36 = 5······15
35/15 = 2······5
15/5 = 3
那么3就是195与36的最大公约数。
function abs(a,b){
var max = Math.max(a,b);
var min = Math.min(a,b);
var x = max%min;
if(x == 0 )
{
x = min;
}
else{
for(var i = 0;i<max;i++){
max = min;
min = x;
x = max%min;
if(x==0){
break;
}
}
}
return "最大公约数:"+min;
}
var n = abs(195,36);
console.log(n);
输出结果为:
递归函数版:
使用了递归来计算两个数的最大公约数。当x等于0时,即找到了最大公约数,使用return语句将结果返回给调用者。
function abs(a,b){
var max = Math.max(a,b);
var min = Math.min(a,b);
var x = max%min;
if(x == 0)
{
return "最大公约数为:"+min;
}
else
{
return abs(min,x);
}
}
var n = abs(195,36);
console.log(n);
运行结果: