0% found this document useful (0 votes)
16 views9 pages

Write A C++ Program To Find Factorial of A Number in C.

Uploaded by

Ajay kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views9 pages

Write A C++ Program To Find Factorial of A Number in C.

Uploaded by

Ajay kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

8.

Write a C++ Program to find Factorial of a


Number in C.
C++ Program To Find Factorial Of A Number
Last Updated : 23 Jun, 2023



The Factorial of a non-negative integer is the multiplication of all


integers smaller than or equal to n. For example, the factorial of 6
is 6*5*4*3*2*1 which is 720.

Recursive Solution
Factorial can be calculated using the following recursive formula.
n! = n * (n-1)!
n! = 1 if n = 0 or n = 1
Below is the C++ program to find the factorial of a number
using a recursive solution:
 C++

// C++ program to find factorial

// of given number

#include <iostream>

using namespace std;

// Function to find factorial of

// given number

unsigned int factorial(unsigned int n)

if (n == 0)

return 1;

return n * factorial(n - 1);

// Driver code

int main()

int num = 5;
cout << "Factorial of " << num << " is "

<< factorial(num) << endl;

return 0;

Output
Factorial of 5 is 120
The complexity of the above method
Time complexity: O(n) where n is the length of the string.
Auxiliary Space: O(n)
Iterative Solution
Factorial can also be calculated iteratively as recursion can be
costly for large numbers. Here we have shown the iterative
approach using both for and while loops.

1. Using For loop

Below is the C++ program to find the factorial of a number using


for loop:

 C++

// C++ program for factorial

// of a number

#include <iostream>

using namespace std;

// Function to find factorial of


// given number

unsigned int factorial(unsigned int n)

int res = 1, i;

for (i = 2; i <= n; i++)

res *= i;

return res;

// Driver code

int main()

int num = 5;

cout << "Factorial of " << num << " is "

<< factorial(num) << endl;

return 0;

Output
Factorial of 5 is 120
The complexity of the above method
Time complexity: O(n)
Auxiliary Space: O(1)
2. Using While loop

Below is the C++ program to find the factorial of a number using


a while loop:

 C++

// C++ program for factorial

// of a number

#include <iostream>

using namespace std;

// Function to find factorial of given

// number using while loop

unsigned int factorial(unsigned int n)

if (n == 0)

return 1;

int i = n, fact = 1;

while (n / i != n) {

fact = fact * i;

i--;

return fact;
}

// Driver code

int main()

int num = 5;

cout << "Factorial of " << num << " is "

<< factorial(num) << endl;

return 0;

Output
Factorial of 5 is 120
The complexity of the above method
Time complexity: O(n)
Auxiliary Space: O(1)
Using Ternary Operator
Below is the C++ program to find the factorial of a given number
using the ternary operator:

 C++

// C++ program to find factorial

// of given number

#include <iostream>
using namespace std;

int factorial(int n)

// Single line to find factorial

return ((n == 1 || n == 0) ? 1 :

n * factorial(n - 1));

// Driver Code

int main()

int num = 5;

cout << "Factorial of " <<

num << " is "<<

factorial(num);

return 0;

// This code is contributed by shivanisinghss2110


Output
Factorial of 5 is 120
The complexity of the above method
Time complexity: O(n), for recursion.
Auxiliary space: O(n), for recursion call stack.
Using Call By Reference
Below is the C++ program to find the factorial of a given number
using call by reference:

 C++

// C++ program to find the factorial

// of a given number using call

// by reference method

#include<iostream>

using namespace std;

// Function to find factorial

void factorial(int n, int *f)

int i;

for(i = n; i >= 1; i--)

*f = (*f) * i;

}
// Driver code

int main()

int num = 5, fact = 1;

factorial(num, &fact);

cout << "Factorial of " <<

num << " is "<<

fact;

return 0;

Output
Factorial of 5 is 120

You might also like