public double myPow(double x, int n) { double temp = 0; if(x==0.0) { return 0; } if(n==0){ return 1; } if(n==1) { return x; } if(n<0){ if(n==Integer.MIN_VALUE) { n=n+1; n=-n; x=1/x; temp = myPow(x,n/2+1); return temp*temp; }else { n=-n; x=1/x; } } if(n%2==0) { temp = myPow(x,n/2); return temp*temp; }else { temp = myPow(x,n/2); return temp*temp*x; } }