先考虑特殊情况x=0和n=0时,为了减少时间复杂度,我们二分进行运算,如果与2求余等于0,那么相乘即是答案,如果求余余1,就要判断n是否大于0,如果是大于,那么再乘以他本身,如果小于,那么除以他本身
class Solution {
public double myPow(double x, int n) {
if (x == 0)
return 0;
if(n == 0)
return 1;
double m = myPow(x , n/2);
if(n%2 ==0)
return m * m;
return n > 0 ? m * m * x : m * m / x;
}
}