求1+2+3+…+n
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
思路
用右移运算符,再结合等差数列求和公式。
还可以用逻辑运算的短路特性
代码
function Sum_Solution(n)
{
var res = Math.pow(n, 2) + n;
return res >> 1;
}
function SumSolution(n) {
return n && Sum_Solution(n - 1) + n;
}