題目:
實現函式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
] 。
思路:
這道題想實現功能並不難,
難點在於1. 對於入參的檢查(是否合法)2.2對於n為負值時情況的處理(很容易忘記)2.2 n為負值且為最大負值時,不能直接n = -n,會溢位,使用乙個long來處理3. 對於快速求冪方法的實現(這個是難點)
因為常規時間複雜度o(n),一次一次乘無法滿足題目要求,因此需要快速求冪的方法:
在每次迴圈中:
若初始n為奇數,先乘一次,而後每次迴圈 x = x*x
n /=2
;while
(n2)
**:
class
solution
while
(n2)
if(flag)
ret =
1/ret;
return ret;}}
;
16 數值的整數次方
實現函式pow double base,int exponent 常規的思路是,迴圈相乘,雖然簡單,也有幾個要注意的地方 0 的負數次方是錯誤的輸入引數,因為負數次冪是借助除法算出,0 不能作為分母 非0數的負數次冪是,先求正數次冪,再取倒數。0 的 0 次方是無意義的 處理 or 不處理 而迴圈相...
16 數值的整數次方
public class doublepower 沒有考慮指數為負數和指數小於1的情況 param base 底數 param exponent 指數 return 結果 public static double power1 double base,int exponent return resu...
JZ12 數值的整數次方
給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。保證base和exponent不同時為0 coding utf 8 class solution def power self,base,exponent write code here a...