用二分法递归,不递归就超时,时间复杂度log n
class Solution {
public:
double myPow(double x, int n)
{
if(n==0 || x==1.0) return 1.0;
if(n==1) return x;
if(n==-1) return 1.0/x;
double res=myPow(x, n/2);
res = res*res;
//如果是奇数
if((n&1)==1 && n>0) res=res*x;
if((n&1)==1 && n<0) res=res*1/x;
return res;
}
};