📜  JavaScript程序使用递归查找数字的阶乘

📅  最后修改于: 2020-09-27 05:03:33             🧑  作者: Mango

在此示例中,您将学习编写一个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
let num = prompt('Enter a positive number: ');

// calling factorial() if num is positive
if (num >= 0) {
    let 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 6 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