public class Solution {
public double myPow(double x, int n) {
if(n==0) return 1;
else if(n<0) return 1/unsignedPow(x, -n);
else return unsignedPow(x, n);
}
public double unsignedPow(double x, int n){
if(n==1) return x;
if(n%2==1) return x*myPow(x,n-1);
else
{
double tmp = myPow(x, n/2);
return tmp*tmp;
}
}
}
public double myPow(double x, int n) {
if(n==0) return 1;
else if(n<0) return 1/unsignedPow(x, -n);
else return unsignedPow(x, n);
}
public double unsignedPow(double x, int n){
if(n==1) return x;
if(n%2==1) return x*myPow(x,n-1);
else
{
double tmp = myPow(x, n/2);
return tmp*tmp;
}
}
}