求1+2+3+...+n,

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

这个题一看就是递归的做法

public class Solution {
    public int Sum_Solution(int n) {

        return n+Sum_Solution(n-1);
    }
}

但是不能使用if,也就是说单纯的递归不能找到结束条件,所以这里引入新的方法

短路特性

把代码进行改写

//注  java不能自动转boolean
public class Solution {
    public int Sum_Solution(int n) {
        int ans = n;
        boolean t = (ans!=1)&& ((ans = ans +Sum_Solution(n-1))!=0);
        return ans;
    }
}
原创文章 57 获赞 9 访问量 5948

猜你喜欢

转载自blog.csdn.net/Cscprx/article/details/104023280