劍指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;
}
複製代碼
相關文章
相關標籤/搜索