LeetCode:Pow(x, n)

时间:2014-06-06 18:40:43   收藏:0   阅读:180

要求

Implement pow(xn)

1. 特例

2. 优化

bubuko.com,布布扣
index = (n > 0 ? n : -n);
pow(x, index) = (index %2==1 ? pow(x, index/2)*x : pow(x, index/2));
bubuko.com,布布扣

 继续优化

bubuko.com,布布扣
pow(x, index) = (index %2==1 ? pow(x, index>>1)*x : pow(x, index>>1));
bubuko.com,布布扣

 

3. 参考代码

bubuko.com,布布扣
 class Solution 
 {
    public:
    double pow(double x, int n) 
    {
        int index = n;
        if (n == 0)
            return 1;
        if (n == 1)
            return x;
        if (n < 0)
            index = -n;
        double rev = index%2==0 ? pow(x*x, index>>1) : pow(x*x, index>>1)*x;
        if (n < 0)
            return 1 / rev;
        else
            return rev;
    }
 };
bubuko.com,布布扣

 

LeetCode:Pow(x, n),布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!