题目描述:
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
思路解析:
- 可以使用递归的方法解决累加的问题
- 利用“或者“逻辑运算符,前面为真,就不用计算后边的特点,使得n=0的时候就可以停止递归
- 利用”并且“逻辑运算符,前面为假,也不用计算后边的特点,使用n>0来停止递归。
- 左右都必须是关系运算符的表达式,目的是让后边的运行。
代码1:
public class Solution {
public int Sum_Solution(int n) {
int sum=n;
int a=0;
boolean value = (n==0)||(a==(sum+=Sum_Solution(n-1)));
return sum;
}
}
逻辑与:
public class Solution {
public int Sum_Solution(int n) {
int sum=n;
int a=0;
boolean value = (n>0)&&(a==(sum+=Sum_Solution(n-1)));
return sum;
}
}