题目:求1+2+…+n
Category | Difficulty | Likes | Dislikes |
---|---|---|---|
lcof | Medium (85.99%) | 523 | - |
求 1+2+...+n
,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
示例 1:
输入: n = 3
输出: 6
示例 2:
输入: n = 9
输出: 45
限制:
1 <= n <= 10000
分析:
连加:利用递归实现
终止:利用 && 、|| 的特性, (A && B),A 为false时,B不执行;同理,(A || B),A 为true时,B不执行;
代码:
/*
* @lc app=leetcode.cn id=100345 lang=cpp
*
* [剑指 Offer 64] 求1+2+…+n
*/
// @lc code=start
class Solution {
public:
int sumNums(int n) {
n <=0 || (n += sumNums(n-1));
// n && (n += sumNums(n-1));
return n;
}
};
// @lc code=end
Accepted
- 35/35 cases passed (0 ms)
- Your runtime beats 100 % of cpp submissions
- Your memory usage beats 28.62 % of cpp submissions (6.1 MB)