47求1+2+3+...+n
题目描述
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
用递归
1 public class Solution { 2 public int Sum_Solution(int n) { 3 int sum = n; 4 if(n==0) return 0 ; 5 sum+=Sum_Solution(n-1); 6 return sum; 7 } 8 }
但是用到了if
如何不用if 就终止递归呢? 可以用逻辑与的短路特性,
boolean res = n>0 && (sum+=Sum_Solution(n-1))>0;
当n==0的时候,&&后面的不会执行