不能用for和while循环,就要用递归。不能用if判断就用短路求值,短路就相当于一个判断语句。
递归:递归边界就是n==0,如果&&前的为false,那么后面的也不执行了,直接返回n。递归式是n += f(n-1),递归加上n-1,如果前面为true,后面的递归式会继续执行。
class Solution {
public:
int Sum_Solution(int n) {
//短路求值+递归
//不能用循环就递归,不能判断就用短路
//f(n) = f(n-1) + n
//有这个短路,就有递归边界了,只要ans==0就是递归结束了
n && (n+=Sum_Solution(n-1));
return n;
}
};