May
30th,
2017
https://www.freecodecamp.cn/challenges/sum-all-numbers-in-a-range
我们会传递给你一个包含两个数字的数组。返回这两个数字和它们之间所有数字的和。
最小的数字并非总在最前面。
如果你被难住了,记得使用 Read-Search-Ask。尝试与他人结伴编程、编写你自己的代码。
这是一些对你有帮助的资源:
解法一:
function sumAll(arr) {
var array=[], sum;
var max=Math.max.apply(null,arr);
var min=Math.min.apply(null,arr);
var sumFun=function(max,min){
for(var i=0;i<(max-min+1);i++){
array.push(min+i);
}
array.reduce(function(previousValue,currentValue){
return previousValue+currentValue;
});
};
sum=sumFun(max,min);
return sum;
}
sumAll([1, 4]);
解法二:(推荐)
function sumAll(arr) {
return (arr[0] + arr[1])*(Math.abs(arr[0] - arr[1]) + 1)/2;
}
sumAll([1, 4]);
解法三:
function sumAll(arr) {
var result=0,
a_start=Math.min(arr[0],arr[1]),
a_end=Math.max(arr[0],arr[1]);
while(a_start<=a_end){
result+=a_start;
a_start++;
}
return result;
}
sumAll([1, 4]);