求1+2+3+...+n
,要求不能使用乘除法、for、while、if、else、switch、case
等关键字及条件判断语句(A?B:C)
。
使用递归,使用&&短路来终止递归
function Sum_Solution(n) {
return n && (n + Sum_Solution(n - 1));
}
求和公式为 n(n+1)/2 = (n方+n)/2
可以用Math.pow
函数求n
方,用位运算代替除法
function Sum_Solution(n) {
return (Math.pow(n, 2) + n) >> 1;
}