算法列表

50. Pow(x, n) 中等

布莱克2026-05-17 14:49递归

问题:

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

示例 1:

输入:x = 2.00000, n = 10
输出:1024.00000

示例 2:

输入:x = 2.10000, n = 3
输出:9.26100

示例 3:

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

回答:

一开始想着几次幂就相乘多少次,时间复杂度n会超时,采用递归

var myPow = function(x, n) {
    if (x == 1 || n == 0) return 1;
    if (n < 0) {
        x = 1 / x;
        n = -n;
    }
    var pow = function(x, n) {
        //递归终止条件
        if (n == 0) return 1;
        let half = pow(x, Math.floor(n / 2));
        if (n % 2 == 0) {
            return half * half
        } else {
            return half * half * x;
        }
    }
    return pow(x, n)
};


assistant