Note:
可以把n整成2进制来看,如果当前这位是1,说明是要乘这一位的,不是1就跳过
就是模板 记住就完了
代码如下:
class Solution {
public:
double myPow(double x, int n) {
bool flag = false;
double ans = 1.0;
if(n < 0) flag = true;
long long k = abs((long long) n);
while(k){
if(k & 1) ans *= x;
x *= x;
k >>= 1;
}
if(flag) return 1 / ans;
return ans;
}
};