实现power的功能
就是Pow(x,n) = x^n
但实际上按照今天学习的分治法里面的内容,其实x^n = x^(n/2)* x^(n/2) * x
在这道题目里,x的N次方可以看做:x^n = x^(n/2)*x^(n/2)*x^(n%2)
还需要考虑n为负数的情况
利用递归求解
public class Solution {
public double power(double x, int n) {
//pow is to calculate x^n
//and x^n = x^(n/2) * x^(n/2) * x^(n%2)
//n can be odd or even
if(n==0) return 1;
double v = power(x,n/2);
if(n%2 == 0){
return v*v;
} else{
return v*v*x;
}
}
public double myPow(double x, int n){
if(n<0){
return 1/power(x,-n);
}else{
return power(x,n);
}
}
}