求1+2+3+…+n,不能使用乘除法、for、while、if-else、switch-case以及条件判断语句
常规解法:直接通过递归进行计算,结束条件为n==1
class Solution {
public:
int Sum_Solution(int n) {
if(n==1) return 1;
else return n+Sum_Solution(n-1);
}
};
new solution:通过&&操作符的短路求值作为递归的结束条件,更简洁。
class Solution {
public:
int Sum_Solution(int n) {
int ans = n;
ans && (ans += Sum_Solution(n - 1));
return ans;
}
};