64. 求1+2+…+n

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

示例 1:

输入: n = 3
输出: 6

示例 2:

输入: n = 9
输出: 45

限制:

  • 1 <= n <= 10000
class Solution {
    public int sumNums(int n) {
        // 出口条件取反 + && 
        // if(n <= 0) return 0;
        int sum = n;
        
        //条件为真才能继续求递归和,不然返回此层的n
        boolean kp = (n > 0) && ( sum  +=  sumNums(n - 1) ) > 0;
        return sum;
    }
}

猜你喜欢

转载自www.cnblogs.com/zzytxl/p/12638006.html