《剑指offer》—— 求1+2+…+n
原题地址:https://leetcode-cn.com/problems/qiu-12n-lcof/
原文地址:https://juejin.im/post/6844904153970376717
题目描述
求 \(1 + 2 +... + n\) ,要求不能使用乘除法、for、while、if、else、switch、case 等关键字及条件判断语句(A ? B : C)
解题思路
通常求和无非是这几种写法:
- 等差数列的前 \(n\) 项和:\(Sn = (a1 + an) * n / 2\)
for循环累加- 尾递归
然而题目中要求不能使用乘除法、for、while、if、else、switch、case 等关键字及条件判断语句(A ? B : C),那么前面两种解法自然就被我们排除掉了,只能用尾递归。
为了方便理解,这里帮大家画个图👇
示例代码
/**
* @param {number} n
* @return {number}
*/
var sumNums = function(n) {
return n > 0 && (n + sumNums(n - 1))
};
搜索「tony老师的前端补习班」关注我的微信公众号,那么就可以第一时间收到我的最新文章。

浙公网安备 33010602011771号