跳到主要内容

50 Pow(x, n)

https://leetcode.cn/leetbook/read/top-interview-questions-medium/xwo102/

cost: 11m26s

class Solution {
public:
double myPow(double x, int n) {
if (n < 0) {
if (n == -0x7FFFFFFF - 1) {
n = 0x7FFFFFFF;
return 1 / (x * myPow(x, n));
}
n = -n;
return 1 / myPow(x, n);
}
if (n == 0) {
return 1;
}
if (n == 1) {
return x;
}
if (n == 2) {
return x * x;
}
if (n % 2 == 0) {
double r = myPow(x, n / 2);
return r * r;
}
double r = myPow(x, n / 2);
return r * r * x;
}
};