劍指Offer | 求1+2+3+...+n

做了個劍指Offer的題目目錄,鏈接如下:
https://blog.csdn.net/mengmengdastyle/article/details/80317246

一、題目

求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。

二、解法

難點:不能使用乘除、for、while、if、else、switch、case等關鍵字以及條件判斷的語句(A?B:C)
解法:通過遞歸的方式進行計算。
但是很疑問的地方在於如何結束遞歸。這裏可以有多種的方式,基本方向是採用邏輯與或的方式來計算,與的時候通過n>0來短路,這樣在n=0的時候不需要計算遞歸的值,或的時候通過n==0來短路,在n=0的時候可以短路邏輯或運算。

三、代碼

public int Sum_Solution(int n) {
        int sum = n;  
        boolean b = (n == 0) || (sum += Sum_Solution(n-1)) > 0;    
        return sum; 
    }
發佈了121 篇原創文章 · 獲贊 30 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章