方法一:易理解
使用循环,当为偶数时加上-m,当为奇数时直接相加。
function fn(m) {
let sum = 0;
for (let i = 1; i <= m; i++) {
if (i % 2 === 0) {
sum += -i;
continue;
}
sum += i;
}
return sum;
}
方法二:程序运行更快
将表达式拆分为(1-2)+(3-4)+(5-6)+...+m,因此是在求n个-1的和
当m为偶数时,是在求m/2个-1的和。例如m=6时是在求3个-1的和。
当m为奇数时,是在求(m-1)/2个-1的和,再加上m。例如m=7时是在求6/2=3个-1的和,再加上7。
function getSum(m) {
if(m%2===0){
return -(m/2);
}
return -(m-1)/2+m;
}