50. Pow(x, n)

2016-12-02  本文已影响44人  exialym

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);
};
上一篇下一篇

猜你喜欢

热点阅读