javascript - 如何在javascript中找到11的幂或x是幂n?

标签 javascript algorithm math data-structures

我正在寻找 11 n 的力量.我知道在 JavaScript 中有一个函数 Math.pow这给了你数字的力量。我想自己实现这个功能。 我的功能运行良好 ,但其时间复杂度为 O(n) 我们可以使用任何其他方法降低时间复杂度吗?
我正在考虑使用 bit map ,但没有成功。

function power(x,n) {
    let sum =1
    for(let i =0;i<n;i++){
    sum*=x
    }
    
    return sum
}

console.log(power(11,3))

最佳答案

您可以采用建议的方形方法。
复杂度是 O(log2(n)),就像这个带有函数计数的表一样。

   n     counts
-------  ------
   100      7
  1000     10
 10000     14
100000     17

function power(x, n) {
    if (n === 1) return x;
    let temp = power(x, n >> 1);
    return n % 2
        ? x * temp * temp
        : temp * temp;
}

console.log(power(11, 3)); // 1331 with 2 calls

关于javascript - 如何在javascript中找到11的幂或x是幂n?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63464941/

相关文章:

javascript - Packery水平布局问题

c++ - 词搜索算法段错误

c - 我无法理解这个 Horner 规则在扩展字段 GF(p^n) 中的实现

javascript - 如何检查给定标记是否在区域内

javascript - Adsense 错误 : "Blocked a frame with origin.."

javascript - Highchart 刻度间隔

javascript - 将 reject() 跳过 Promise 中所有随后的 then()

java - 使用java构建最小堆

c++ - 生成汉明距离 t 内的所有比特序列

java - 极其紧凑的 UUID(使用所有字母数字字符)