剑指Offer64. 求1 + 2 + … + n Golang版
1. 问题描述
求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
示例 1:
输入: n = 3
输出: 6
示例 2:
输入: n = 9
输出: 45
限制:
1 <= n <= 10000
2. 思路
2.1. 思路1
(1+n) * n / 2
2.2. 思路2
f(n - 1) + n
3. 代码
3.1. 思路1代码
func sumNums(n int) int {
return (1+n) * n / 2
}
3.2. 思路2代码
func sumNums(n int) int {
if n == 1 {
return 1
}
return sumNums(n - 1) + n
}