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);
};