我正试图为以下问题编写解决方案,但遇到了一些困难:
如果我们列出所有10以下的自然数,它们是3或5的倍数,我们得到3、5、6和9。这些倍数之和是23。
完成解决方案,使其返回低于传入数字的3或5的所有倍数的总和。
注意:如果数字是3和5的倍数,则只计算一次。
这是我的代码:
function solution(number){
var sum = 0,
for (i = 0, i < number, i++) {
if ((i % 3 === 0) && (i % 5 === 0)) {
sum += i }
else if ((i % 3 === 0) || (i % 5 === 0)) {
sum += i }
}
return sum;
}
提前感谢!
您只需要一个测试:如果满足i % 3 === 0 || i % 5 === 0
,则将i
添加到sum
。
确保不要隐式创建全局变量;i = 0
将在严格模式下抛出错误。第一次使用变量时,请始终声明它们。
function solution(number) {
var sum = 0;
for (let i = 0; i < number; i++) {
if (i % 3 === 0 || i % 5 === 0) {
sum += i;
}
}
return sum;
}
console.log(solution(10));
您还需要在for
循环声明中放入分号,而不是逗号。