数字的阶乘是从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