快速幂来做,注意n是负数的情况,还有n是最小负数的情况
class Solution {
public:
double myPow(double x, long long n) {
if (n < 0) return 1 / myPow(x, -n);
double ans = 1.0;
while (n) {
if (n & 1) ans *= x;
n >>= 1; x *= x;
}
return ans;
}
double myPow(double x, int n) {
return myPow(x, (long long)n);
}
};