题目描述
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
思路:
递归,ans就是用来当if用的,如果计算到n=-1的时候式子中的&&前一部分(n>0)不成立,所以返回0,当n>0时计算后面的sum+=Sum_Solution(n-1)逻辑&&的短路特性,前一部分不成立,后面部分不用计算
code
class Solution {
public:
int Sum_Solution(int n) {
int sum=n;
bool ans=(n>0)&&((sum+=Sum_Solution(n-1))>0);
return sum;
}
};