JavaScript 如何找到一个数的阶乘
数字的阶乘是所有正下降整数的乘积。n的阶乘用n!表示。例如 –
4! = 4 * 3 * 2 * 1 = 24
5! = 5 * 4 * 3 * 2 * 1 = 120
在这里,4!发音为“4阶乘”,也称为“4感叹号”或“4惊叹号”。
在本文中,我们使用JavaScript 计算一个数字的阶乘。我们使用两种方法找到阶乘。第一种是迭代方法,另一种是递归方法。
使用迭代方法
在这里,我们在数字序列上迭代循环以得到给定数字的阶乘。使用此方法,与递归实现相比,内存消耗较少。但代码比递归方法更长。
让我们看一个示例。
示例
在这个示例中,有一个需要一个数字的文本字段和一个按钮,给出我们输入数字的阶乘的按钮。我们必须在给定的文本字段中输入一个数字来找到该数字的阶乘。然后,我们需要点击名为 Factorial 的按钮来获取结果。
如果我们输入一个负数,那么程序会计算 0 的阶乘,即 1 。
<!DOCTYPE html>
<html>
<head>
</head>
<body style = "text-align: center; font-size: 20px;">
<h1> Welcome to the javaTpoint.com </h1>
Enter a number: <input id = "num">
<br><br>
<button onclick = "fact()"> Factorial </button>
<p id = "res"></p>
<script>
function fact(){
var i, num, f;
f = 1;
num = document.getElementById("num").value;
for(i = 1; i <= num; i++)
{
f = f * i;
}
i = i - 1;
document.getElementById("res").innerHTML = "The factorial of the number " + i + " is: " + f ;
}
</script>
</body>
</html>
输出
执行上述代码后,输出将为-
输入数字并点击按钮后,输出将是 –
现在,我们将看到如何使用JavaScript的递归方法计算阶乘。
使用递归方法
在这种方法中,我们使用递归来计算一个数的阶乘。在这里,我们一次又一次地调用相同的函数来获取阶乘。使用递归,我们可以编写比迭代方法更少的代码。
现在,我们将在JavaScript中看一个使用递归计算阶乘的示例。
示例
这里有一个函数 fact() ,它接受一个参数 num 。它是我们需要计算阶乘的数字。当 num 的值为 0 时,该函数返回 1 。
在输出中,我们将看到一个需要输入数字的文本字段和一个给出输入数字的阶乘的按钮。我们需要在给定的文本字段中输入一个数字以找到该数字的阶乘。然后我们需要点击名为 Factorial 的按钮以获取结果。
<!DOCTYPE html>
<html>
<head>
</head>
<body style = "text-align: center; font-size: 20px;">
<h1> Welcome to the javaTpoint.com </h1>
Enter a number: <input id = "number">
<br><br>
<button onclick = "fact1()"> Factorial </button>
<p id = "res"></p>
<script>
function fact(num)
{
if (num == 0) {
return 1;
}
else {
return num * fact( num - 1 );
}
}
function fact1()
{
var num = document.getElementById("number").value;
var f = fact(num);
document.getElementById("res").innerHTML="The factorial of the number " + num + " is: " + f ;
}
</script>
</body>
</html>
输出
在上述代码执行完之后,输出结果将会是 –