Home  >  Article  >  Backend Development  >  Factorial in PHP

Factorial in PHP

王林
王林Original
2024-08-29 13:12:25976browse

Before we begin learning of Factorial in PHP, let us understand the term factorial. Factorial of a number is the product of all numbers starting from 1 up to the number itself. While calculating the product of all the numbers, the number is itself included.

ADVERTISEMENT Popular Course in this category PHP DEVELOPER - Specialization | 8 Course Series | 3 Mock Tests

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

Factorial of a number is calculated for positive integers only. The factorial of 0 is always 1 and the factorial of a negative number does not exist. It is denoted by ‘!’ preceded by the number. Example n! where n is the number

So,

Factorial of 5! means factorial of 5

Factorial of 7! means factorial of 7

For example, the factorial of number 5 is:

5! =5*4*3*2*1 = 120

Similarly, the factorial of number 7 is:

7! = 7*6*5*4*3*2*1 = 5040

and so on..

Now how do we actually find the factorial, we can do it using

  1. for loop (without recursion)
  2. with recursion

Factorial Logic

The logic behind getting the factorial of the number is as per the following.

  1. Get the number whose factorial is to be calculated.
  2. Get all the numbers starting from 1 up to that number.
  3. Get the multiplication of all the numbers.

Remember the factorial of 0! = 1.

How to Find Factorial in PHP?

We will learn further using different methods to calculate factorial of the given number using PHP code. Like using recursion, recursion with user input, without recursion, without recursion with user input.

About Recursion

Like other languages PHP also supports Recursion. What is recursion? When a function calls itself is termed as recursion. A recursive function calls itself within the function.

Example #1

In the following PHP program factorial of number 5 is calculated. This is a simple program using for loop. This for loop is iterated on the sequence of numbers starting from the number till 1 is reached.

Code:

<?php
//example to calculate factorial of a number using simple for loop
//declaring the input number as 5
$input=5;
//declaring the fact variable as 1
$fact =1;
//iterating using for loop
for($i=$input; $i>=1;$i--) {
// multiply each number up to 5 by its previous consecutive number
$fact = $fact * $i;
}
// Print output of the program
echo '<br>'. 'The factorial of the number 5 is '. $fact
?>

Output:

Factorial in PHP

Example #2

In the below program, we have used a simple HTML form with an input text and a submit button. The input box is used to get user input. The submit button is used to submit the form data. Followed by that is the PHP code to iterate for loop wherein all the logic is present, which we learned in the previous program. So now the same logic is used with an input form.

If the user inputs a positive number through the input box in the form, the factorial of that number is calculated and the result is printed.

Code:

<html>
<head>
<title> Factorial Program</title>
</head>
<body>
<form method="POST">
<label>Enter a number</label>
<input type="text" name="number" />
<input type="submit" name="submit" value="Submit" />
</form>
<?php
// example to demonstrate factorial of a number using form
if($_POST['submit'] == "Submit") {
$input = $_POST['number'];
$fact=1;
//iterating using for loop
for($i=$input; $i>=1;$i--) {
$fact = $fact * $i;
}
// Print output of the program
echo '<br>'. 'The factorial of the number '.$input.' is ' . $fact;
}
?>
</body>
</html>

Output :

Factorial in PHP

Example #3

In the above two programs, we didn’t wrap the logic within a function. Here we have enclosed the main logic in a function and then called that function to calculate the factorial of the given number in PHP. Here the name of the function is Factorial_Function which finds the factorial of number 8.

Code:

//example to calculate factorial of a number using function
//defining the factorial function
function Factorial_Function($number) {
$input = $number;
$fact=1;
//iterating using for loop
for($i=$input; $i>=1;$i--) {
$fact = $fact * $i;
}
return $fact;
}
//calling the factorial function
$result = Factorial_Function(8);
echo 'Factorial of the number 8 is '.$result;
?>

Output :

Factorial in PHP

Example #4

We know that recursion is calling a function within a function. In the following example, we will use recursion and find the factorial of the number using PHP code. The main logic is wrapped in a function name Factorial_Function. Within this function if the input is greater that one, then the same function is called again and if the input is less than or equal to 1 then one is returned.

Using Recursion

Code:

<?php
//Example to demonstrate factorial of a number using recursion
//function containing logic of factorial
function Factorial_Function($input)
{
// if the input is less than or equal to 1 then return
if($input <=1) {
return 1;
}
// else do a recursive call and continue to find the factorial
return $input * Factorial_Function($input-1);  //doing a recursive call
}
echo "Factorial of 9 is ".Factorial_Function(9);
?>

Output :

Factorial in PHP

Example #5

We have now learned about recursion. In the following program, we have used recursion, the recursion is applied to the number which is the input from the user in this example.

Code:

<html>
<head>
<title> Factorial Program</title>
</head>
<body>
<form method="POST">
<label>Enter a number</label>
<input type="text" name="number" />
<input type="submit" name="submit" value="Submit" />
</form>
<?php
// example to demonstrate factorial of a number using form
function Factorial_Function($input)
{
// if the input is less than or equal to 1 then return
if($input <=1) {
return 1;
}
// else do a recursive call and continue to find the factorial
return $input * Factorial_Function($input-1); //doing a recursive call
}
if(!empty($_POST['number'])){
$input = $_POST['number'];
// Print output of the program
echo '<br>'. 'The factorial of the number '.$input.' is ' . Factorial_Function($input);
}
?>
</body>
</html>

Output:

Factorial in PHP

Conclusion

This article has covered all the explanations and examples for finding the factorial of a number using PHP. Examples are explained using recursive and non-recursive ways, along with recursion explanation in context with the program. Hope this article was found informative to learn and grasp well.

The above is the detailed content of Factorial in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:Fibonacci Series PHPNext article:Fibonacci Series PHP