[LeetCode]Pow(x,n)二分探索
3386 ワード
Implement pow(x, n).
Hide Tags
Math Binary Search
テーマは簡単です.
Hide Tags
Math Binary Search
テーマは簡単です.
class Solution {
public:
double pow(double x, int n) {
if(n==0) return 1;
bool nNeg = false;
long long int nn = n;
if(n<0){
nn = - nn ;
nNeg =true;
}
bool xNeg = false;
if(x<0){
x = -x;
if(n%2==1)
xNeg = true;
}
double ret = 1;
while(nn){
if(nn&1)
ret *= x;
x *=x;
nn>>=1;
}
if(nNeg==true)
ret = 1/ret;
if(xNeg==true)
return -ret;
return ret;
}
};