劍指offer Q11 數值的整數次方

2021-06-22 15:36:32 字數 724 閱讀 9477

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...