代码之家  ›  专栏  ›  技术社区  ›  AndrewL64

javascript中是否有用于查找数字阶乘的内置方法?

  •  0
  • AndrewL64  · 技术社区  · 7 年前

    是否有任何内置方法可以用来查找一个数的阶乘,我们可以使用这些方法来代替可重用函数,如下面的示例:

    function factorial(x) {
      for (let i = x - 1; i >= 1; i--) {
        x= x * i; 
      }
    
      return x;
    }
    
    alert(factorial(16));
    3 回复  |  直到 7 年前
        1
  •  0
  •   Bergi    7 年前

    不,那个 Math object 没有提供这种方法。

        2
  •  0
  •   Nikhil Aggarwal    7 年前

    没有内置阶乘函数不过,作为补充说明,您可以将函数简化如下

    function factorial(x) {
      return (x > 1) ? x * factorial(x-1) : 1;
    }
    
    console.log(factorial(5));
        3
  •  0
  •   mazunki    7 年前

    在javascript中没有内置函数来对数字进行阶乘运算,但是您可以为此目的生成一个.js文件,并将其导入到要使用它的每个文件中。
    看看这个问题: How do I include a JavaScript file in another JavaScript file? 用于导入文件。我相信这是你能得到的最接近你想要的。

    正如nikos在评论中已经提到的,对于大阶乘数,应该注意溢出,因为对于整数,可以达到的最大值是2^53-1,对于按位运算,可以达到2^32-1。制作自己的BigIt库,或者搜索一个:存在很多开源的库。