码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode:Pow(x, n)

时间:2014-06-06 18:40:43      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   blog   code   java   

要求

Implement pow(xn)

1. 特例

  • n=0, 直接返回1
  • n=1, 直接返回x
  • n<0,返回 1/pow(x,-n)

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

LeetCode:Pow(x, n)

标签:c   style   class   blog   code   java   

原文地址:http://www.cnblogs.com/kaituorensheng/p/3766209.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!