面试题:有限制条件的求和

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

方法:短路定理

class Solution{
    public int Sum_Solution(int n){
        int sum=n;
        boolean flag = (sum>0)&&((sum+=Sum_Solution(--n))>0);
        return sum;
    }
}
//java不能自动转布尔型
//不能这样写 sum&&(sum+=Sum_Solution(--n))
//这样boolean flag=(sum>0)&&((sum+=Sum_Solution(--n))>0)

用另外一种方式实现递归

 

posted on 2018-08-20 09:52  Aaron12  阅读(181)  评论(0编辑  收藏  举报

导航