gpt4 book ai didi

Javascript 代码改进 - 整数阶乘

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:17:53 27 4
gpt4 key购买 nike

我正在学习使用 Javascript 编写代码,其中一项练习是关于返回所提供整数的阶乘。例如:5! = 1 * 2 * 3 * 4 * 5 = 120

我想出了一个结果,它被接受了。但是,我不太确定这将是解决此问题的最有效方法。

有人对如何改进此代码有任何建议吗?

function factorialize(num) {
var array = [];
for (i = 1; i <= num; i++) {
array.push(i);
}
var multi = 1;
for (var i = 1; i < array.length; i++) {
multi *= array[i];
}
return multi;
}

非常感谢!!

最佳答案

您可以通过多种方法获得解决方案。

  1. 通过迭代

    function f(n) {
    var r = n;
    while (--n) {
    r *= n;
    }
    return r;
    }
  2. 通过递归

    function f(n) {
    return n === 0 ? 1 : n * f(n - 1);
    }

    或者一个很短的版本

    function f(n) {
    return +!~-n || n * f(n - 1);
    }

关于Javascript 代码改进 - 整数阶乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35241048/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com