首页 > 其他 > 详细

[lintcode medium]Pow(x, n)

时间:2016-01-06 08:00:58      阅读:243      评论:0      收藏:0      [点我收藏+]

Implement pow(x, n).

Note

You don‘t need to care about the precision of your answer, it‘s acceptable if the expected answer and your answer ‘s difference is smaller than 1e-3.

Challenge

O(logn) time

一开始,直接做的,复杂度O(n)

public class Solution {
    /**
     * @param x the base number
     * @param n the power number
     * @return the result
     */
    public double myPow(double x, int n) {
        // Write your code here
        double res=1;
        if(n==0) return res;
        if(n<0)
        {
            int digit=Math.abs(n);
            for(int i=1;i<=digit;i++)
            {
              res=x*res;
            }
            
            res=1/res;
            
        }
        else{
        for(int i=1;i<=n;i++)
        {
            res=x*res;
        }
        }
        return res;
    }
}

 

 

复杂度O(logN)

 

public class Solution {
    /**
     * @param x the base number
     * @param n the power number
     * @return the result
     */
    public double myPow(double x, int n) {
        // Write your code here
        double res=1;
        if(n==0) return 1;
        if(n<0)
        {
            n=-n;
            x=1/x;
        }
        while(n>0)
        { 
            if(n%2==1)
            {
                res*=x;
            }
            n=n/2;
            x=x*x;
        
        }
        return res;
    }
}

 

[lintcode medium]Pow(x, n)

原文:http://www.cnblogs.com/kittyamin/p/5104296.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!