📜  如何在 JavaScript 中获得从头到尾所有数字的幂的总和?(1)

📅  最后修改于: 2023-12-03 15:38:18.064000             🧑  作者: Mango

如何在 JavaScript 中获得从头到尾所有数字的幂的总和?

如果我们要计算 1 到 n 的数字的幂的总和,我们可以使用以下代码:

function sumOfPowers(n) {
  let sum = 0;
  for (let i = 1; i <= n; i++) {
    sum += Math.pow(i, i);
  }
  return sum;
}

console.log(sumOfPowers(5)); // 输出 1^1 + 2^2 + 3^3 + 4^4 + 5^5 = 3413

该函数迭代 n 次,每次计算 i 的 i 次方,然后将其添加到总和中。

我们使用 Math.pow 函数计算幂。该函数接受两个参数,第一个参数是基数,第二个参数是指数,返回基数的指数幂。

在上面的函数中,我们使用 i 作为基数和指数,计算 i 的 i 次方,并将其添加到 sum 中。最后,sum 包含从 1 到 n 的数字的幂的总和。

这是一个简单的解决方案,如果 n 未被限制,则可能会遇到性能问题。如果 n 很大,我们可以使用公式来计算幂和,如下所示:

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

console.log(sumOfPowers(5)); // 输出 1^1 + 2^2 + 3^3 + 4^4 + 5^5 = 3413

在这种情况下,我们使用幂运算符 ** 替换了 Math.pow 函数。 幂运算符是 ECMAScript 2016 标准中的新运算符,它允许我们更轻松地计算幂。

无论我们使用哪种方法,以上两种方式都可以有效地计算从 1 到 n 的数字的幂的总和。