Links

64.求1+2+…+n

一、 题目

求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
示例 1:
输入: n = 3
输出: 6
示例 2:
输入: n = 9
输出: 45
限制:
1 <= n <= 10000
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/qiu-12n-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

二、 解法

分析
  • 因为有限制条件,我们就不能直接使用公式:Sn = n * (n + 1) / 2 或 Smn=(n+m)(n-m+1)/2
  • 可以使用递归代替循环
func sumNums(_ n: Int) -> Int {
if n == 0 { return 0 }
return n + sumNums(n - 1)
}