如何推理只有5个数字?

时间:2016-02-01 15:53:05

标签: javascript factorial

我有一个阶乘代码,但是当它找到阶乘的结果时,它将得到整个阶乘的结果。

我正在寻找能够找到数字最后5个阶乘的阶乘的代码吗?例如,10! ?我只需要10 x 9 x 8 x 7 x 6 = 30240的结果?我该怎么做?

<html>
<body>
    <script type = "text/javascript">
        var n = parseInt(window.prompt("Enter the Number:"));
        var result = fact(n);
        window.alert("Factorial of the given number " + result);
        function fact(n)
        {
            if(n == 0)
                return 1;
            else 
                return (n*fact(n-1));
        }
    </script>
</body>

1 个答案:

答案 0 :(得分:0)

正如MinusFour已经注意到的那样:你需要10!/5!。你可以这样做并计算值和除法。它们完全分开,不用担心分数(证明省略)。但它受尺寸限制,你不能做到,例如JavaScript中的100!95!没有大整数库,即使是大整数库,像1000000!/999998!之类的东西也需要大量的计算时间(两者都是超过500万个十进制数字的数字)。

我的建议:没有技巧,只需像手工操作一样线性计算:

function fact(n,k){
  var t = 1;
  for(var i = n;i>k;i--){
    t *= i;
  }
  return t;
}
console.log(fact(10,5));

第一个必须是较大的一个,两个都必须是正数,所有其他的检查和平衡也被省略。