天天看點

劍指offer系列之四十六:求1到n的和

題目描述

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

如果不能使用上面的操作,那麼隻能使用遞歸操作了。使用遞歸操作的思路是讓函數不斷調用自己,每調用一次值就減少1,這樣完成了遞歸操作。還有一個問題是如何實作n範圍的判斷呢?注意到遞歸調用的n的值最小是1,是以可以通過邏輯與運算,判斷是否遞歸到1。如果遞歸調用到1,那麼遞歸就結束,并傳回最後的結果。下面是這樣思路的實作代碼(已被牛客ac):