Implement pow(x, n).
1 class Solution { 2 public: 3 double myPow(double x, int n) { 4 if(n<0) //对负指数的处理 5 { 6 if(n==INT_MIN) //最小负数取反还是本身,故应该提取一个再计算 7 return 1.0/(myPow(x,INT_MAX)*x); //对于n取值INT_MIN时,-n并不是INT_MAX 8 return 1.0/myPow(x,-n); 9 } 10 11 double ans=1; 12 if(n==0) 13 return ans; 14 15 while(n) 16 { 17 if(n&1) 18 ans*=x; 19 n>>=1; 20 x*=x; 21 } 22 23 return ans; 24 } 25 };