题解 | #求1+2+3+...+n#
求1+2+3+...+n
https://www.nowcoder.com/practice/7a0da8fc483247ff8800059e12d7caf1
题目
JZ64 求1+2+3+...+n
描述
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
数据范围: 0<n≤200
进阶: 空间复杂度 O(1) ,时间复杂度 O(n)
重点知识点
递归和return 语句执行条件判断
递归使用
函数自己调用自己,但条件改变,趋近于结束
条件判断
倒数第二次递归时,返回0,最后一次递归时,&&左边的n=0,则整个语句为假,不会再执行判断后面的条件
代码
#include <iostream>
class Solution {
public:
int Sum_Solution(int n) {
//数学解决方法
//return n*(n+1)/2;
//递归解决
n&&(n+=Sum_Solution(n-1)); //n=0时为假,右边就不会进入递归了。
return n;
}
};
#刷题#刷题 - 解题 文章被收录于专栏
记录遇到的题目,解题思路和相关知识点