题目描述
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
分析:
1)想到递归运算;
2)如何退出递归运算呢? 无计可施,最终看答案,发现是用到 逻辑运算符的 短路运算
&& 若前面位false 后面就不用计算了
代码:
public class Solution {
public int Sum_Solution(int n) {
int sum=n;
boolean flag=(sum >0)&&(sum+=Sum_Solution(--n))>0;
return sum;
}
}