double myPow(double x, int n) {

```
if(x==1.0 )
return 1;
if(x==-1.0)
return n%2==0 ? 1 : -1;
if(n==INT_MIN || n==INT_MAX)
return 0;
if(n==0) return 1;
if(n<0){
n = -n;
x = 1/x;
}
return n%2==0 ? myPow(x*x, n/2) : x*myPow(x*x, n/2);
```

}