劍指Offer系列之 數值的整數次方

2021-10-24 09:51:43 字數 1166 閱讀 4037

給定乙個 double 型別的浮點數 base 和 int 型別的整數 exponent。求 base 的 exponent 次方。

保證 base 和 exponent 不同時為 0

假設求: x

6x^6

x6已知 6 可以表示成二進位制110

可以表示成:6=0

∗20+

1∗21

+1∗2

26 = 0*2^0+1*2^1+1*2^2

6=0∗20

+1∗2

1+1∗

22所以可以: x

6x^6

x6可以表示成: x6=

x0∗2

0+1∗

21+1

∗22=

x0∗x

1∗21

∗x1∗

22

x^6 = x^ = x^0*x^*x^

x6=x0∗

20+1

∗21+

1∗22

=x0∗

x1∗2

1∗x1

∗22所以,對於二進位制數,遇到位數是 1 的就乘到答案中。

時間複雜度:o(logn),因為n的二進位制位個數為logn

空間複雜度:o(1)

public

class

solution

double x = b;

double res =

1.0;

while

(n >0)

return res;

}}

遞迴解法:

時間複雜度:o(logn)

空間複雜度:o(logn),遞迴棧,因為要記住logn個變數

public

class

solution

return

q_power

(b,n);}

private

static

double

q_power

(double b,

int n)

}

劍指Offer系列(10) 數值的整數次方

題目如下 實現函式double power double base int exponent 求base的exponent次方。不得使用庫函式,同時不需要考慮大數問題。這個題目需要注意的有兩點 一是我們需要分情況討論,看似乙個數的整數次方很好求,直接用exponent個base撐起來即可,但實際上我...

劍指Offer系列16 數值的整數次方

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

劍指offer系列 12 數值的整數次方

q 給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。保證base和exponent不同時為0。c 時間限制 c c 1秒,其他語言2秒 空間限制 c c 32m,其他語言64m t 1.剛剛學習了快速冪,正好用上 這個題要注意,expon...