算法
(递归) $O(n)$
最直接的想法就是用递归,sum(n) = n+sum(n-1),但是要注意终止条件,由于求的是1+2+…+n的和,所以需要在n=0的时候跳出递归,但是题目要求不能使用if,while等分支判断,可以考虑利用&&短路运算来终止判断。
时间复杂度分析:递归,复杂度为$O(n)$。
C++ 代码
class Solution {
public:
int getSum(int n) {
int res = n;
(n>0) && (res += getSum(n-1));//利用短路运算终止递归
return res;
}
};
学到了,tql!!
另外发现可以把关键的那一句和return直接放在一起写。利用逗号表达式即可
orz
短路好评
666
有想法,牛逼
tql
太妙了,第一次知道短路运算!
#酱紫不行吗
不能用if
用短路运算太帅了
# amz
tql
orz
为什么不能用等差数列求和公式呢?
因为包含乘法除法啊!!!
哦
大佬tql
tql
是挺短的
#####test
hello
#end
GOODBYE!
tql
大佬
tql