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

Last updated