题目
Implement pow(x, n).
频度: 5
解题之法
class Solution {
public:
double myPow(double x, int n) {
double ans = 1;
unsigned long long p;
if (n < 0) {
p = -n;
x = 1 / x;
} else {
p = n;
}
while (p) {
if (p & 1) //位运算: 如果p的最右位为1
ans *= x;
x *= x;
p >>= 1; // 除以2
}
return ans;
}
};