16 數值的整次方

2021-10-06 20:49:33 字數 917 閱讀 2619

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

示例 1:

輸入: 2.00000, 10

輸出: 1024.00000

示例 2:

輸入: 2.10000, 3

輸出: 9.26100

示例 3:

輸入: 2.00000, -2

輸出: 0.25000

解釋: 2-2 = 1/22 = 1/4 = 0.25

說明:-100.0 < x < 100.0

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

按正常的那樣寫,for i in range(n).oj直接報超時。 所以不能用。 人家面試官也不想看你這麼水的邏輯。

二分法:

xn=

xn/2

∗xn/

2x^n = x^ * x^

xn=xn/

2∗xn

/2再來觀察二進位制 7 = 111, 每個位置分別對應4 2 1

2 7=

24∗2

2∗21

2^7 = 2^4 * 2^2 *2^1

27=24∗

22∗2

1

def mypow(self, x: float, n: int) -> float:

if x==0: return 0

res = 1

if n<0 : x,n = 1/x,-n

while n:

if n & 1: res *= x

x *= x

n >>= 1

return res

16 數值的整次方

實現函式double power double base,int exponent 求base的exponent次方。不得使用庫函式,同時不需要考慮大數問題。示例 1 輸入 2.00000,10 輸出 1024.00000 示例 2 輸入 2.10000,3 輸出 9.26100 示例 3 輸入 2...

數值的整次方

2 實現函式double power double base,int exponent 求base的exponent次方。不得使用庫函式,同時不需要考慮大數問題 如下 5 include6 using namespace std 7 8 bool g invaildinput false 9 10 ...

14 數值的整次方

給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。使用連乘的方法得到的時間複雜度 是 n.這樣是找不到工作的。需要對他就行優化。就是 次冪 exponent 不是奇數就是偶數,當它是偶數時,如求 10 10,就是10 8 10 2 也就是1...