我有一个阶乘代码,但是当它找到阶乘的结果时,它将得到整个阶乘的结果。
我正在寻找能够找到数字最后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>
答案 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));
第一个必须是较大的一个,两个都必须是正数,所有其他的检查和平衡也被省略。