Skip to content

Latest commit

 

History

History
26 lines (16 loc) · 485 Bytes

1+2+3+...+n.md

File metadata and controls

26 lines (16 loc) · 485 Bytes

题目

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;
    }