題目:
求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(a?b:c)。
示例 1:
輸入: n = 3
輸出: 6
示例 2:
輸入: n = 9
輸出: 45
限制:1 <= n <= 10000
分析:這裡考慮遞迴思路,中點解決遞迴終止條件,即出口在**?
思路:1、 遞迴 + 短路與邏輯運算;短路與運算 && 左邊為true才會執行右邊,所以構成條件判斷,破除題目限制;
2、將乘除運算轉化為運算;附上,暫時不建議;
**實現:
思路1 時間複雜度o(n),空間複雜度o(n)
class
solution
}
思路2 時間複雜度o(logn),空間複雜度o(1)
class
solution
}
劍指筆記 64 求1 2 n
題目 求1 2 3 n,要求不能使用乘除法 for while if else switch case等關鍵字及條件判斷語句 a?b c 思路1 將求和公式進行變形為sum n 2 n 2,然後利用指數和移位操作來計算,如下 1 public class solution 思路2 1.利用短路特性和...
劍指offer 學習筆記 求1 2 n
面試題64 求1 2 n。不能用乘除法 for while if else switch case等關鍵字及條件判斷語句 包括a?b c 法一 建構函式求解。迴圈讓相同的 迴圈執行n次,我們也可以不用迴圈語句完成,先定義乙個型別,接著建立n個該型別的物件,那麼這個型別的建構函式就會被呼叫n次 inc...
劍指offer刷題 求1 2 n
題目 求1 2 n,要求不能使用乘除法,for while if else switch case等關鍵字及條件判斷語句 a?b c 要求不能使用乘除和一些語句,因此我們可以設計遞迴思路,並且用位運算子來判斷是否到達遞迴終止的條件。另外,我們可以用c 建構函式來設計出一種思路,具體見 class s...