- 题目描述
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
- 思路
1.一般我们会想到递归,如下:
public class Solution {
public int Sum_Solution(int n) {
if(n==1)
return 1;
return n+Sum_Solution(n-1)
}
}
2.由于题目不允许用if语句,所以我们必须修改if语句
3.我们可以想到&&逻辑与运算
A&&B:
1)A为true,判断B是否为true.
2)A为false,不判断B,直接return
- 代码
public class Solution {
public int Sum_Solution(int n) {
int sum = n;
//ans=0,则直接return 0,不用看&&后面的语句了,如果ans>0,则执行&&后面的语句
// bool ans只是为了不报错
boolean ans = (n>0)&&((sum+=Sum_Solution(n-1))>0);
return sum;
}
}