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

50. Pow(x, n)

作者: exialym | 来源:发表于2016-12-02 10:46 被阅读44次

    Implement pow(x, n).
    实现x的n次方。
    利用x^n = x^(n/2) * x^(n/2) *x^(n%2),使用分治法完成。

    var myPow = function(x, n) {
        //n<0时使用数学方法转为正的
        if(n < 0) return 1 / myPow(x,-n);
        //n = 0,1时直接返回
        if(n === 0) return 1;
        if(n === 1) return x;
        // 递归
        // x^n = x^(n/2) * x^(n/2) *x^(n%2)
        var sub = myPow(x,parseInt(n / 2));
        return  sub * sub * myPow(x,n % 2);
    };
    

    相关文章

      网友评论

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

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