Don*_*uez 0 javascript arrays algorithm reduce formula
我正在看这个挑战:
\n\n\n计算 1 到 n 之和的公式为:
\n\xc2\xa0 \xc2\xa0 \xc2\xa0总计 = n * (n + 1) / 2
\n编写一个函数来计算n和m之间(含)之间的所有值的总和。
\n有没有办法使用该公式n和m来获得答案?跳出框框思考……你不必想出一个新的公式;你只需想出一个新的公式即可。有一种方法可以使用现有的方法来解决它。
\n
我仍然通过编写以下代码通过了所有测试:
\nfunction solution(n, m){\n let numsArr = [];\n for(i=n; i <= m; i++){\n numsArr.push(i);\n }\n let initialValue = 0;\n let sum = numsArr.reduce(\n (previousValue, currentValue) => previousValue + currentValue,\n initialValue\n );\n return sum\n}\n\nconsole.log(solution(5,9));
Run Code Online (Sandbox Code Playgroud)\r\n但是如何使用指定的公式来解决它呢?
\nm
您想要的公式是 sum up to减去 sum up to之间的差n-1
。
const sum = (a) => a * (a + 1) / 2;
const mySum = (m, n) => sum(m) - sum(n - 1);
console.log(mySum(9, 5));
Run Code Online (Sandbox Code Playgroud)