64:求1+2+…+n

题目64:求1+2+…+n

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

思路

对于剑指Offer书上介绍的四种方法都是C++的解法,不适用于JAVA。

利用&&的短路特性控制base case,递归实现加法。

代码实现

public class _64 {
    public static int Sum(int n) {
        int res = n;
        boolean flag = (n>0)&&((res+=Sum(n-1))>0);//利用&&的短路特性控制base case
        return res;
    }
    public static void main(String[] args) {
        System.out.println("1+2+3 = "+Sum(3));
        System.out.println("1+2+3+4+5 = "+Sum(5));
    }
}

输出:

1+2+3 = 6
1+2+3+4+5 = 15

你可能感兴趣的:(64:求1+2+…+n)