leetcode 面试题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
我的代码
class Solution {
public:
int sumNums(int n) {
return n == 1? 1: sumNums(n - 1) + n;
}
};
我的成绩
执行结果:通过
执行用时 : 4 ms, 在所有 C++ 提交中击败了41.23%的用户
内存消耗 : 6.3 MB, 在所有 C++ 提交中击败了100.00%的用户
一些想法
本道题我并没有能满足限制条件。。。
执行用时为 0 ms 的范例
class Solution {
public:
int sumNums(int n) {
int sum = 0;
n > 0 && (sum = sumNums(n - 1));
return n + sum;
}
};
思考
参见官方解答