0
私は並べ替えと組み合わせの計算機を作った。数値の階乗を見つけるためのコードは次のとおりです。ここで私の置換計算機が小数を返すのはなぜですか?
function factorial(num){
total=1;
if(num==1||num==0){
return total;
}
else{
for(i=2;i<=num;i++){
total*=i;
}
return total;
}
}
は順列を見つけるためのコードです:
answer.innerHTML="Answer: "+factorial(n)/factorial(n-r);
私は55P9をすれば、私の答えは0.5オフになっています。 Math.floor()を使用するとすべて動作しますが、問題の根本を見つけたいと思います。
を意味する。これは、nPr(55,9)を意味する。 –
これはJSでの数字の働きの詳細です。これをチェックしてください:http://stackoverflow.com/questions/3072307/what-is-the-standard-solution-in-javascript-for-handling-big-numbers-bignum – JordanHendrix
階乗についてもこれを残しておきます: 'function factorial(num){ return num> 1? num * factorial(num - 1):num; } ' – JordanHendrix