class Solution {
public double myPow(double x, int n) {
double result = n >= 0 ? quickMul(x, n) : 1 / quickMul(x, -n);
return result;
}
public double quickMul(double x, int n){
if(n == 0) return 1.0;
double y;
y = quickMul(x, n/2);//用一个全局变量接收,避免每次调用的时候重复计算
if(n % 2 == 0){
return y * y ;//不要写成 quickMul(x, n/2) * quickMul(x, n/2)
}
else{
return y * y * x;
}
}
}
归纳:
分幂指数为奇数和偶数的情况,用到了二分法