题目描述:
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
方法一:需利用逻辑与的短路特性实现递归终止。
ans==true时,递归Sum_Solution(n-1),只执行int sum=n,sum依次等于n为5,4,3,2,1,0. 当ans==false,执行return sum,开始回溯。
public class Sum {
public int Sum_Solution(int n) {
int sum = n;
boolean ans = (n > 0) && ((sum += Sum_Solution(n - 1)) > 0);
return sum;
}
public static void main(String[] args) {
Sum s = new Sum();
System.out.print(s.Sum_Solution(5));
}
}
方法二
public class Solution {
public int Sum_Solution(int n) {
return n==1?1:n+Sum_Solution(n-1);
}
}