Abc summer green jacket
我正在尝试为数组中的一系列数字找到最小公倍数。该代码适用于包含两个项目的数组,但是具有两个以上项目的数组的输出似乎超出了预期的值。 任何人都可以帮我找到我的代码中的错误吗?
谢谢
答案 0 :(得分:2)
每次循环遍历数组元素时,将j
设置回1
。否则,当您处理下一个数字时,您将从高倍数开始。
// function that find the least common multiple
function lcm(arr) {
arr = arr.sort(function(a, b) {
return a - b;
});
var num = arr[0];
for (i = 1; i < arr.length; i++) {
var j = 1;
while (num % arr[i] !== 0) {
j = j + 1;
num = j * arr[0];
}
arr[0] = num;
}
return num;
}
console.log(lcm([3, 5, 6, 10]));