分治算法,n是负数的时候取倒数,只需考虑n大于0的情况即可
class Solution {
public:
double myPow(double x, int n) {
return n >= 0 ? quickMul(x, n) : 1.0 / quickMul(x, n);
}
double quickMul(double x, int n){
if(n == 0){
return 1.0;
}
double y = quickMul(x, n / 2);
if(n % 2 == 0){
return y * y;
}
return y * y * x;
}
};