給定乙個 double 型別的浮點數 base 和 int 型別的整數 exponent。求 base 的 exponent 次方。假設求: x保證 base 和 exponent 不同時為 0
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...