x的n次方即n个x相乘,解法一就直接相乘
比如计算2的4次方,2*2*2*2,相当于计算2个2*2,如果计算出了2*2,就没必要再计算一次
注意下n为负数的情况
分治的思路,代码如下
public double myPow(double x, int n) {
if(n<0) {
return 1/pow(x, -n);
}
return pow(x, n);
}
public double pow(double x, int n) {
if(n==0) {
return 1;
}
double midValue = pow(x, n/2);
return n%2==0 ? midValue * midValue : midValue * midValue * x;
}