求x的n次,几个考虑点:
1.n=0
2.n<0
3.n=integer.min (负数)
参考别人的代码如下:
double myPow(double x, int n) {
if(n==0)
return 1;
long p = 0;
if(n>0)
p = (long)(n);
else
p = -(long)(n);
double ans = 1;
while(p>0){
if((p&1)==1) ans *= x;
p >>= 1;
x *= x;
}
if(n>0)
return ans;
else
return 1/ans;
}