再帰を使用して数の階乗を見つけるJavaScriptプログラム

数の階乗は、からのすべての数の積です。 1 その数に。 例えば、

の階乗 5 に等しい 1 * 2 * 3 * 4 * 5 = 120

正の数nの階乗は、次の式で与えられます。

factorial of n (n!) = 1 * 2 * 3 * 4.....n

負の数の階乗は存在せず、の階乗は存在しません 0 です 1


例:再帰を使用して階乗を見つける

// program to find the factorial of a number
function factorial(x) {

    // if number is 0
    if (x == 0) {
        return 1;
    }

    // if number is positive
    else {
        return x * factorial(x - 1);
    }
}

// take input from the user
const num = prompt('Enter a positive number: ');

// calling factorial() if num is positive
if (num >= 0) {
    const result = factorial(num);
    console.log(`The factorial of ${num} is ${result}`);
}
else {
    console.log('Enter a positive number.');
}

出力

Enter a positive number: 4
The factorial of 4 is 24

上記のプログラムでは、ユーザーは番号を入力するように求められます。

ユーザーが負の数を入力すると、メッセージ 正の数を入力してください。 示されています。

ユーザーが正の数を入力したとき、または 0、 関数 factorial(num) 呼び出されます。

  • ユーザーが番号を入力した場合 0、プログラムは戻ります 1
  • ユーザーがより大きい数を入力した場合 0、プログラムは数を減らすことによって再帰的に自分自身を呼び出します。
  • このプロセスは、数値が1になるまで続きます。その後、数値が0に達すると、1が返されます。

ここに、

factorial(4) returns 4 * factorial(3)
factorial(3) returns 4 * 3 * factorial(2)
factorial(2) returns 4 * 3 * 2 * factorial(1)
factorial(1) returns 4 * 3 * 2 * 1 * factorial(0)
factorial(0) returns 4 * 3 * 2 * 1 * 1



Hope this helps!

Source link