pow(base, exponent)
考慮一下幾種情況:
base = 0, 那麼直接返回0
base = 1, 那麼直接返回1
exponent = 0, 那麼直接返回1, 注意base= 0
exponent = 1, 那麼直接返回 base
exponent 為正為負 的情況
主要考察的點是將問題縮減,用折半的思想。這個題細節還是很多的,為了便於驗證,leetcode
def equal(self, a, b):
return abs(a - b) < 1e-7
def pow(self, x, n):
if 0 == n and self.equal(x, 0):
return 0
if 0 == n: return 1
if 1 == n or self.equal(x, 1.0):
return x
pos = true
if n < 0:
pos = false
n = abs(n)
re = pow(x, n >> 1) * pow( x, n >> 1)
if n & 1:
re *= x
if pos == false:
re = 1.0/re
return re
劍指offer 11 數值的整數次方
題目描述 給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。全面考慮問題 1 base 0或base 0 2 exponent 0或exponent 0或exponent 0 優化 notice exponent 1和exponent 0x...
劍指Offer 11 數值的整數次方
1 浮點數的比較不能直接用 精度問題 2 的魯棒性,考慮非正常情況 3 0的0次方 1 4 unsigned int,計算機中數字都用補碼表示 5 移位運算 6 遞迴演算法 include using namespace std class solution unsigned int ab pone...
劍指offer 11 數值的整數次方
package offer 求數值的整數次方 需要考慮全面 1 0為底時負數次冪無意義,0為指數值為 1,1為指數值為其本身 2 指數為負數時,注意為倒數 3 計算機中判斷相等時考慮精度的問題,自己定義 equals方法 auther dennis date 2018 4 15 public cla...