0%

剑指 Offer 64. 求1+2+…+n

剑指 Offer 64. 求1+2+…+n

shuai
1
2
3
4
5
6
7
8
9
10
class Solution {
public:
int sumNums(int n) {
bool x = n > 1 && sumNums(n - 1); // n == 1时候终止递归,递归栈返回,从ret从n=1开始加上去。 此处使用逻辑符短路,代替了原本if(n <= 1) return 1;
ret += n;
return ret;
}
private:
int ret = 0;
};

写法二

1
2
3
4
5
6
7
class Solution {
public:
int sumNums(int n) {
n && (n += sumNums(n - 1));
return n;
}
};

如果没题目限制使用递归

1
2
3
4
5
6
7
8
9
class Solution {
public:
int sumNums(int n) {
if(n == 1)
return 1;
n += sumNums(n - 1);
return n;
}
};