class Solution {
public double myPow(double x, int n) {
double e=1.0;
if(n==0){
return e;
}
if(n==-2147483648){
Long t=2147483648L;
double base = x;
while(t>0){
if((t & 1)==1) e *= base;
base *= base;
t >>= 1;
}
return 1/e;
}
else{
int cnt=Math.abs(n);
double base = x;
while(cnt>0){
if((cnt & 1)==1) e *= base;
base *= base;
cnt >>= 1;
}
if(n<0){
e=1/e;
}
return e;
}
}
}