客观的
给定数组中的两个数字,将所有数字相加,包括两个整数(在两个整数之间)(例如,在两个整数之间)(例如[4,2]-> 2 + 3 + 4 = 9)。
我已经设法解决了这个问题,但想知道是否还有一个更优雅的解决方案(尤其是使用Math.max和Math.min)-请参阅下面的更多问题...
我的解决方案
//arrange array for lowest to highest number
function order(min,max) {
return min - max;
}
function sumAll(arr) {
var list = arr.sort(order);
var a = list[0]; //smallest number
var b = list[1]; //largest number
var c = 0;
while (a <= b) {
c = c + a; //add c to itself
a += 1; // increment a by one each time
}
return c;
}
sumAll([10, 5]);
我的问题
var array = [4, 2];
var max = Math.max.apply(Math, array); // 4
var min = Math.min.apply(Math, array); // 2
function sumSeries (smallest, largest) {
// The formulate to sum a series of integers is
// n * (max + min) / 2, where n is the length of the series.
var n = (largest - smallest + 1);
var sum = n * (smallest + largest) / 2; // note integer division
return sum;
}
var sum = sumSeries(min, max);
console.log(sum);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句