递归二分法算x的n次方
class Solution {
public:
double myPow(double x, long n) {
if(x==-1){ //特殊情况
if(n%2==0) return 1;
else return -1;
}else{
if(n==0||x==1) return 1;
if(n==1) return x;
//重点
if(n<0) return 1/myPow(x,-n); //不管n是正负,都能用下面两条计算
else if (n%2==0) return myPow(x*x,n/2); //二分计算
else return myPow(x,n-1)*x; //无法二分则转换为能二分的情况
}
}
};