-2
これは階乗を見つける関数です。この問題は、typeof行を追加したときに表示されます。コードは次のとおりです。この階乗関数を呼び出したときにNaNを取得するのはなぜですか?
function factorial(num) {
if ((typeof num) == "number") {
if (num < 0) {
error.innerHTML = "Choose a positive number or 0!";
}
else if (num == 1 || num == 0) {
return 1;
}
else {
return num * factorial(num - 1);
}
}
}
私が答えたときはいつも、答えが得られず、代わりに "NaN"を取得します。
私はこのコードで順列を計算しようとしています:
Math.floor(factorial(n)/factorial(n-r));
それは通常の階乗ではなく、その式では動作しません。
私は正しい答えを取得しています。ここで確認してください:https://jsfiddle.net/tc9cqeu4/ –
それは同様の式で動作します。 https://jsfiddle.net/tc9cqeu4/2/。あなたが渡しているnとrの変数の値は何ですか?不足しているコードを追加してください。 –
負の値を渡すと、関数は数値を返しません。 – ConnorsFan