leetcode50 Pow(x, n)

Implement pow(xn).

 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 };
View Code
原文地址:https://www.cnblogs.com/jsir2016bky/p/5105826.html