我刚刚完成了 FreecodeCamp.com 测验中间算法脚本:最小公倍数。
代码对于他们给出的测试用例(和)运行良好[1, 5]
,但如果我使用更大的范围,我还必须编辑代码并增加-loop 的停止条件,当我从循环中删除停止条件时,它给出了一个错误。[5, 1]
[23, 18]
[1, 13]
for
function smallestCommons(arr) {
arr.sort((a, b) => a - b);
const creatArray = (start, stop, step) =>
Array.from(
{ length: (stop - start) / step + 1 },
(_, i) => start + i * step
);
let myArray = creatArray(arr[0], arr[arr.length - 1], 1);
for (let i = myArray[myArray.length - 1]; i < 10000000; i++) {
if (myArray.every((e) => calback(e, i))) {
return i;
}
}
}
let calback = (elem, e) => e % elem === 0;
console.log(smallestCommons([1, 5]));
这段代码有什么简单的修复吗?我的解决方案是有效的还是有更好的方法来解决这个问题?
谢谢
慕尼黑的夜晚无繁华
相关分类