題目實現函式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次方在數學上是沒有意義的 通過快速冪演算法提高演算法效率 為進一步提高效率,用右移運算子代替除...