美文网首页
50. Pow(x, n)

50. Pow(x, n)

作者: youzhihua | 来源:发表于2019-11-29 14:46 被阅读0次

题目描述

实现 pow(x, n) ,即计算 x 的 n 次幂函数。

示例1:

输入: 2.00000, 10
输出: 1024.00000

示例2:

输入: 2.00000, -2
输出: 0.25000
解释: 2-2 = 1/22 = 1/4 = 0.25

思路

1.一个数的负数幂等于1除以这个数的正数幂,例如:2^-4 = 1/(2^4)
2.若N是偶数,则 x^N = (x^N/2 )* (x ^ N/2);若N是奇数,则 x^N = (x^N/2 )* (x ^ N/2)*x。
3.所有自然数的0次幂等于1.0。
4.可以使用递归,快速求出x的N次幂。

Java代码实现

    public double myPow(double x, int n) {
        x = n >= 1 ? x : (1.0/x);
        return myPowFast(x,Math.abs(n));
    }
    
    private double myPowFast(double x ,int n){
        if(n == 0)
            return 1.0;
        double half = myPowFast(x,n/2);
        if(n % 2 == 0)
            return half*half;
        else 
            return half*half*x;
    }

相关文章

网友评论

      本文标题:50. Pow(x, n)

      本文链接:https://www.haomeiwen.com/subject/mvcgwctx.html