function gcd (a, b) {
if(b == 0){
return a;
}
return gcd(b, a%b);
}
function gcd_more_than_two_numbers (a) {
var last = Math.max.apply(null, a);
var first = Math.min.apply(null, a);
return gcd(first, last);
}
console.log(gcd_more_than_two_numbers([9999,213123,9,15,27]));
console.log(gcd_more_than_two_numbers([5,10,15,25]));
Run Code Online (Sandbox Code Playgroud)
取数组中的最低和最高值并为它们之间的所有数字找到一个gcd是否正确?数学上正确吗?
取数组中的最低和最高值并为它们之间的所有数字找到一个gcd是否正确?数学上正确吗?
NO。
您需要获取第一对的gcd,然后针对数组的所有其他元素重新计算,您可以使用reduce以下命令轻松完成此操作:
function gcd (a, b) {
if(b == 0){
return a;
}
return gcd(b, a%b);
}
function gcd_more_than_two_numbers (a) {
return a.reduce(gcd)
}
console.log(gcd_more_than_two_numbers([9999,213123,9,15,27]))Run Code Online (Sandbox Code Playgroud)