【剑指offer】047-求1+2+3+...+n

题目

求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

方法1:利用逻辑与的短路特性,实现递归停止

1
2
3
4
5
6
function Sum_Solution(n{
  // write code here
  let sum = n
  n > 0 && (sum += Sum_Solution(n - 1))
  return sum
}

方法2:变化等差数列的公式

1
2
3
4
function Sum_Solution(n{
  // write code here
  return (n + Math.pow(n, 2)) >> 1
}
文章作者: ptp
文章链接: https://youyingjie114.github.io/2019/11/07/jz-offer/jz-offer-047/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 PTP'S BLOG