class Solution {
boolean validInput = true;
public double myPow(double x, int n) {
long N=n;
return N>=0? quickMul(x,N) : 1.0/quickMul(x,-N);
}
public double quickMul(double x,long N){
if(x==0.0 && N<0){
validInput = false;
return 0.0;
}
if(x==0.0){
return 0.0;
}
double result = 1.0;
while(N > 0){
//如果N为奇数
if((N & 1) == 1){
result *= x;
}
//其余就相当于N为偶数了
N >>=1;
x *=x;
}
return result;
}
}