求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
示例1
5
15
正常思路:求和,那么就用递归呗
public int Sum_Solution(int n) {
if (n == 1) {
return 1;
}
return n + Sum_Solution(n - 1);
}
但是要求不能用判断,这里要改变一下 用&&原理
可以参考我们平常做多个条件判断的时候会用&&做两个条件的判断 eg: if(a>1&&b>3){} 如果a>1又会执行b>3并对结果做判断
public int Sum_Solution(int n) {
int sum=n;
boolean temp = (n > 0) && ((sum += Sum_Solution(n - 1)) > 0);
return sum;
}