劍指筆記 64 求1 2 n

2021-09-21 13:03:58 字數 411 閱讀 5319

題目:求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.利用短路特性和遞迴

2.當n==0時,(n>0)&&((sum+=sum_solution(n-1))>0)只執行前面的判斷,為false,然後直接返回0;

3.當n>0時,執行sum+=sum_solution(n-1),實現遞迴計算sum_solution(n)。

**2:

public int sum_solution(int n)

劍指Offer64數字 求1 2 n

題目 求 1 2 n 要求不能使用乘除法 for while if else switch case等關鍵字及條件判斷語句 a?b c 示例 1 輸入 n 3 輸出 6 示例 2 輸入 n 9 輸出 45 限制 1 n 10000 分析 這裡考慮遞迴思路,中點解決遞迴終止條件,即出口在 思路 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...