我正在尝试查找 1000 以下的所有 3 或 5 的倍数。在获得所有数字后,我想将它们相加。
我能够弄清楚如何找到倍数并将它们添加到数组中,但无法弄清楚如何将它们添加在一起。
这是我的代码:
var add = [];
var count = 0;
if ( i % 3 == 0 || i %5 == 0) {
for (var i = 1; i <= 1000; i ++) {
add.push(i);
}
};
function whole () {
for(var i = 0 ; i <= add.length; i ++) {
count = count + add[i];
}
};
whole();
最佳答案
第一个循环永远不会发生,因为此时 i
为 undefined
(i%3 为 NaN)。
我认为你只需要将 for
与 if
反转即可。
for (var i = 1; i <= 1000; i ++) {
if ( i % 3 == 0 || i %5 == 0) {
add.push(i);
}
};
您需要返回 count
的断言不正确。该函数只是对全局计数
起作用。
一种更干净、功能纯粹的方法来做到这一点:
function whole(i, count, max){
if(i > max){
return count;
}
if(i % 3 === 0 || i % 5 === 0){
return whole(i + 1, count + i, max);
}
return whole(i + 1, count, max);
}
whole(0, 0, 1000);
关于javascript - 需要帮助查找数组中所有数字的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31084548/