【发布时间】:2016-10-31 11:46:11
【问题描述】:
我一直卡在这个免费的代码营地算法中,真的需要一些帮助。
这是我应该做的:
找到所提供参数的最小公倍数,该公倍数可以被两者以及这些参数之间范围内的所有序号均分。
范围将是一个由两个数字组成的数组,不一定按数字顺序。
例如对于 1 和 3 - 找到 1 和 3 的最小公倍数,它可以被 1 和 3 之间的所有数字整除。
我必须检查我的 arr 中的每个值是否可以被我的公倍数整除,并且真的无法完成它。
这是我目前所拥有的:
function smallestCommons(arr) {
arr = arr.sort();
var number = arr[0];
var secArr = [];
// create a new list with all values to check against.
while (number >= arr[0] && number <= arr[1]) {
secArr.push(number);
number++;
}
var commonMultiple = 1;
var isTrue = true;
function isDivisible(item) {
if (item % commonMultiple === 0) {
return true;
}
else {
return false;
}
}
while (isTrue) {
commonMultiple++;
if (secArr.every(isDivisible)) {
isTrue = false;
}
}
return commonMultiple;
}
smallestCommons([5,1]);
我试图用 Euclid 的算法解决这个问题,并认为这很难,尝试使用 for 循环但不能,我目前正在尝试使用 .every 进行检查,但它说我有一个无限循环。
【问题讨论】:
标签: javascript arrays algorithm