题目描述
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
解析思路
这题牛客评论区的大佬解的太厉害了。
利用 && 运算符,当前半部分为假时,则不对后半部分再次进行运算的特点,作为了递归终止的条件。
当运行到n一次次减1到左后到0时,到达左边的判断,递归结束。
运行代码
public class Solution {
public int Sum_Solution(int n) {
int sum = n;
boolean ans = (n > 0)&&((sum += Sum_Solution(n-1)) > 0);
return sum;
}
}