workaroundExtendedFamily(betar)
workaroundExtendedFamily(ocat, theta = 1)
嘿伙计们,我只是想知道如何在javascript中使用for循环对范围进行求和。我在这里有什么作用,但是它给了我56而不是55.我应该在start + = i中改变它以使它能够得到(1 + 2 + 3 ... + 10)的总和而不是(1 + 1 + 2 + 3 + 4 .... + 10)?
答案 0 :(得分:1)
您需要将代码更新为以下
function needToAdd(start, end) {
for(var i = start+1; i <= end; i++) {
start += i;
}
return start
}
注意:让我们说你的开始和结束是1.所以,在这种情况下,你的循环将执行一次并添加1开始并将其更新为2.因此,你必须从1开始执行你的循环。
答案 1 :(得分:0)
问题在于您在开始时初始化i = start
,并将结果存储为start += i
。因此,actual result
为expected + start
。
解决方案1:对结果使用temp
变量并返回temp
。
var sumInRange = function(a, b) {
var i = t = b;
while (a <= --i) t += i;
return t;
};
alert(sumInRange(1, 5));
alert(sumInRange(1, 10));
解决方案2:没有temp
变量
var sumInRange = function(a, b) {
if (a === b) return a;
return b + sumInRange(a, b - 1);
};
alert(sumInRange(1, 5));
alert(sumInRange(1, 10));