劍指 面試題16 數值的整數次方

2021-10-04 07:25:46 字數 1564 閱讀 4771

題目實現函式double power(double base, int exponent),求base的exponent次方。不得使用庫函式,同時不需要考慮大數問題。

說明:-100.0 < x < 100.0

n 是 32 位有符號整數,其數值範圍是 [−231

−2^−2

31, 2

312^

231] 。

思路:

1、指數為整數,需要考慮正數、負數和0,且底數為0時0的負數次冪無意義。

2、n的範圍是[−231

−2^−2

31, 2

312^

231] ,python還好,c++中需要顯示將其轉換成long long之後再求絕對值:abs_n = abs((long long)n)

3、pow_for_unsigned的高效寫法,這裡用右移運算子代替除以2的操作,用位與運算子代替求餘運算子(%)來判斷奇偶。

#奇數 result *= x

return result

if x==

0.0and n<0:

return

0.0if n<0:

abs_n =

abs(n)

else

: abs_n = n

result = pow_unsigned(x, abs_n)

if n<0:

result =

1.0/result

return result

劍指Offer 面試題16 數值的整數次方

給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。保證base和exponent不同時為0 題目比較簡單,但是需要全面考慮問題,主要是對冪次進行分類,1.exponent 0 這種情況只需要進行常規操作,無需特殊處理2.exponent 0...

劍指offer 面試題16 數值的整數次方

問題 給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。輸入 double型浮點數base,int型整數exponent。輸出 double型結果。思路 本題思路不難,但是容易忘記處理各種邊界值,異常值。當exponent為正數時,base...

劍指offer 面試題16 數值的整數次方

給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。保證base和exponent不同時為0 首先應考慮到指數小於1 負數和零 的情況 應注意0的0次方在數學上是沒有意義的 通過快速冪演算法提高演算法效率 為進一步提高效率,用右移運算子代替除...