我们需要编写一个函数,该函数使用两个数字作为参数m和n,并返回介于m和n之间(包括两端)的所有偶数之和。
例如-
If m = 10 and n = -4
输出应为10 + 8 + 6 + 4 + 2 + 0 +(-2)+(-4)= 24
我们将首先计算最大为n的所有偶数之和和最大为m的所有偶数之和。
然后,我们将检查两个m和n中的较大者。从较大的总和中减去较小的总和,最终将得到m与n之间的总和。
从0到N的所有偶数之和由-
$$\ frac {N \ times(N + 2)} {4} $$
因此,让我们将所有这些都放入代码中-
const sumEven = n => (n*(n+2))/4; const evenSumBetween = (a, b) => { return a > b ? sumEven(a) - sumEven(b) + b : sumEven(b) - sumEven(a) + a; }; console.log(evenSumBetween(-4, 10)); console.log(evenSumBetween(4, 16)); console.log(evenSumBetween(0, 10)); console.log(evenSumBetween(8, 8)); console.log(evenSumBetween(-4, 4));
输出结果
控制台中的输出将为-
24 70 30 8 0