47、求1+2+3+...+n

一、题目

求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

二、解法

 1 public class Solution {
 2         /*1.需利用逻辑与的短路特性实现递归终止。 
 3         2.当n==0时,(n>0)&&((sum+=Sum_Solution(n-1))>0)只执行前面的判断,为false,然后直接返回0;
 4         3.当n>0时,执行sum+=Sum_Solution(n-1),实现递归计算Sum_Solution(n)。*/
 5     public int Sum_Solution(int n) {
 6         int sum = n;
 7         boolean b = (n>0)&&((sum+=Sum_Solution(n-1))>0);
 8         return sum;
 9     }
10 }

 

posted @ 2017-08-31 19:46  fankongkong  阅读(159)  评论(0编辑  收藏  举报