題目的意思是實現乙個pow 函式。
input: 2.00000, 10
output: 1024.00000
這裡用的是遞迴的辦法,能夠降低時間複雜度,不過需要對n進行奇數,偶數進行判斷,用了&0x1進行判斷,當判斷n為奇數的時候,乘上x。
**如下:
class solution
bool flag=false;
//標記是否是負數
if(n<0)
//轉換為非負數
int unsigned_n=abs(n);
//若n為1返回x
if(n==1)
//遞迴呼叫,同時unsigned_n/2
double result=mypow(x, unsigned_n/2);
//n=n/2+n/2(+1)
result=result*result;
if(unsigned_n&0x1)
//若是負數的話,直接用1.0/result
if(flag)
return result;
}};
Leetcode 演算法題50 Pow x,n
題目 50.pow x,n implement pow x,n 題目描述 實現x的n次方 一開始用蠻力法計算,提交 以後系統判斷計算超時,所以採用分治的思想,先計算x的n 2次方,再將結果求平方即可,除錯過程中主要問題就是精度問題,當x為分數 且n較大時,結果可能為0,在求解問題中可能出現0做分分母...
LeetCode 之 Pow x, n (分治法)
問題描述 implement pow x,n 1.基礎知識 1 分治的意識,一道o n 的演算法題,琢磨出o lgn 的思想出來就是要求 2.屌絲 卡殼的地方 1.time limit exceeded。include include include include include using na...
Leetcode第五十題 Pow x, n
題目 實現 pow x,n 即計算 x 的 n 次冪函式。示例 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 ...