劍指offer16
劍指 Offer 16. 數值的整數次方
對於這個問題,首先考慮:
- 底數為 1,指數為任何數結果都為 1;
- 指數為 0,底數為任何數時結果都為 1;
- 如果指數n為負數呢?可以轉化成底數為原底數的相反數的計算。
另外,需要考慮如何計算整次方。如果讓 n 個底數逐個相乘,複雜度太大。這個時候,可以考慮二分法。
- n 為奇數, x n = x n / 2 ∗ x n / 2 ∗ x x^n=x^{n/2}*{x^{n/2}}*x xn=xn/2∗xn/2∗x;
- n為偶數, x n = x n / 2 ∗ x n / 2 x^n=x^{n/2}*x^{n/2} xn=xn/2∗xn/2.
程式碼:
double myPow(double x, int n) {
if(n==0 ||x==1)
{
return 1;
}
double ans=1;
long num=n;
if(num<0)
{
num=-num;
x=1/x;
}
while(num)
{
if(num&1)
ans*=x;
x*=x;
num>>=1;
}
return ans;
}
相關文章
- 刷劍指
- 劍指OFFER
- 劍指1
- 劍指offer導航
- Leetcode劍指offer(八)LeetCode
- 劍指 offer20
- 劍指 offer21
- 劍指Offer題解合集
- 【劍指Offer】矩形覆蓋
- 劍指offer——跳臺階
- 六、劍指 Offer(25~29)
- 劍指Spring原始碼(二)Spring原始碼
- 劍指Spring原始碼(一)Spring原始碼
- 劍指offer-JavaScript版JavaScript
- 劍指offer刷題記錄
- 劍指offer-第2章
- 劍指offer第41~50題
- 劍指 offer(1) -- 陣列篇陣列
- 【劍指offer】【2】字串的空格字串
- 劍指immer,更快更強的limu
- 劍指 Offer 38. 字串的排列字串
- 《劍指 Offer》棧實現佇列佇列
- 劍指offer刷題day02
- LeetCode|劍指 Offer 49.醜數LeetCode
- 劍指offer第49題 醜數
- 劍指offer——重建二叉樹二叉樹
- 劍指Offer 表示數值的字串字串
- 劍指Offer 撲克牌順子
- 【劍指offer】2.替換空格
- 劍指offer-替換空格02
- 劍指offer解析-上(Java實現)Java
- 劍指offer解析-下(Java實現)Java
- 劍指offer 變態跳臺階
- mysql 索引十連問| 劍指 offer - mysqlMySql索引
- 秒殺劍指offer系列(41-50)
- LeetCode 劍指 Offer 05. 替換空格LeetCode
- 劍指offer之順序列印陣列陣列
- 劍指offer(四)重建二叉樹二叉樹