java剑指offer题目:1+2+3+^^^+n,不允许使用乘除,while等循环判断语句。

我在第一次看见这个题目的时候是没有思路的,如果利用数学等差数列公式求解则会用到乘除,如果循环相加的话则会用到循环语句,如果利用递归,那么想要递归停止需要判断语句。

思路:利用&&和||的短路特性作为递归的终止条件。

代码如下:

public class Solution {
    public int Sum_Solution(int n) {
        int sum = n;
        boolean a = (sum >0) && ((sum += Sum_Solution(--n)) >0);
        return sum;
    }
}

 

posted on 2018-09-28 11:37  努力的鱼  阅读(229)  评论(0编辑  收藏  举报

导航