[LeetCode][Java] Pow(x, n)

来源:互联网 发布:上海数据港国家战略 编辑:程序博客网 时间:2024/05/18 14:46

题目:

Implement pow(xn).

题意:

实现pow(xn).

算法分析:

方法一:

直接作弊用Math.pow 囧~~


方法二:

网上的代码很多,这里贴出来一个我认为最好理解的一个吧。

参考了http://www.cnblogs.com/springfor/p/3870929.html

pow(x,n)就是求x的n次方。x的N次方可以看做:x^n = x^(n/2)*x^(n/2)*x^(n%2)。所以利用递归求解,当n==1的时候,x^n=x。

当然n是可以小于0的,2^(-3) = 1/(2^3)。按照上面那个规律就可以解决了。


AC代码:

方法一:
public class Solution {    public double myPow(double x, int n)    {        return Math.pow(x,n);    }}


方法二:

public class Solution {    public double power(double x, int n)    {    if (n == 0)    return 1;         double v = power(x, n / 2);         if (n % 2 == 0)     return v * v;    else    return v * v * x;    }         public double myPow(double x, int n)     {    if (n < 0)    return 1 / power(x, -n);    else     return power(x, n);    }}


0 0
原创粉丝点击