Note:
n 可能是负数,我们记录一下,最后返回的时候返回 结果分支一就行了
代码如下:
class Solution {
public:
double myPow(double x, int n) {
long long isMinus = 1;
if(n < 0) isMinus = -1;
long long k = abs((long long) n);
double res = 1.0;
while(k){
if( (k & 1) == 1) res *= x;
x *= x;
k >>= 1;
}
if(isMinus == -1)
return 1 / res;
return res;
}
};