剑指offer24

题目描述

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

解题思路分析

  • 能够利用逻辑与的短路特性来实现递归终止
  • 当n==0时,(n>0)&&((sum += Sum_solution(n - 1)) > 0)只执行前面的判断,为false,直接返回
  • 当n>0时,执行sum+=Sum_solution(n - 1),实现递归计算Sum_sulotion.

代码实现

public int Sum_solution(int n) {
    int sum = n;
    boolean ans = (n > 0) && ((sum += Sum_solution(n - 1)) > 0);
    return sum;
}
复制代码
相关文章
相关标签/搜索