题目:
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
知识点:
1、短路特性:使用&&,前面的条件判真了,就不会再执行后面的条件了;
使用||,前面的条件判假了,就不会再执行后面的条件了。
2、java中前++:先自加再使用;
后++:先使用再自加。
思路:
设置一个标记位,目的:使用&&运算符,&&的第一个条件是判断n是否大于0,第二个条件是递归。
答案:
public class Solution {
public int Sum_Solution(int n) {
int sum=n;
boolean flag = (n>0)&&((sum+=Sum_Solution(n-1))>0);//只有n>0条件满足,才能递归相加
return sum;
}
}