我在这里遇到这个问题很困难:
编写一个名为sumEvery5th的函数,该函数接受一个非负整数
n
并返回从1到5可以被5整除的整数之和,包括n
本身。使用n
循环。
这是我到目前为止所拥有的:
for
我觉得我真的很近。感谢您的提前帮助。
答案 0 :(得分:3)
您可以在5
处开始循环,因为1、2 ...不能被5整除。您可以直接将5除以5,直到{{1} }大于i++
:
i
答案 1 :(得分:2)
首先,我认为您应该了解for
循环的工作原理。
var sumEvery5th = function(n){
let sum = 0;
for(let i = 1; n % 5 == 0; i++){
sum+ i
};
return sum;
}
您正在逐步执行的操作是:
i
。n
除以5,然后取余数并将其与0进行比较。如果是真的,您将跳过for内的代码块并移向return sum;
行。i
值运行代码块。 通常,您的for
条件将取决于步骤1中声明的变量。要执行的操作是for
代码块运行n
次。
为此,您需要将条件从n % 5 == 0
更改为i <= n
。这将确保在i
小于或等于n
的情况下运行代码块,并从1开始。
现在,在代码块内添加divisible by 5
逻辑,并检查i
的值。
for(let i = 1; i <= n; i++){
if (i%5 == 0) sum += i;
};
现在假设我叫sumEvery5th(5)。
i
(1)是否小于或等于n
(5)。i
(2)是否小于或等于n
(5)。
...依此类推,直到i = 6,在这种情况下,代码块将被跳过,程序将继续其运行。 Ps .:有多种方法可以改善此算法的性能,但是现在您对for
循环有了更好的了解,我将它留给您:)
答案 2 :(得分:0)
var sumEvery5th = function(n){
let sum = 0;
for(let i = 1; i <= n; i++){
if (i % 5 === 0) {
sum += i;
}
}
return sum;
}