As I have discussed in my previous blog that a function that repeats itself is called recursion.So, today I am here with  a very common example of recursion in C++. In this example, I will find the factorial of a given number by recursion.Below is the source code of this program.
Source code
- #include <iostream>
 - using namespace std;
 - int factorial(int);
 - int main() {
 - int n;
 - cout<<"Enter a number: ";
 - cin>>n;
 - cout<<"Factorial="<<factorial(n);
 - return 0;
 - }
 - int factorial(int n) {
 - if (n>1) {
 - return n*factorial(n-1);
 - }
 - else {
 - return 1;
 - }
 - }
 
Output
Explanation
Suppose user enters 4 which is passed to function 
factorial(). Here are the steps involved:- In first 
factorial()function, test expression inside if statement is true. The statementreturn num*factorial(num-1);is executed, which calls secondfactorial()function and argument passed isnum-1which is 3. - In second 
factorial()function, test expression inside if statement is true. The statementreturn num*factorial(num-1);is executed, which calls thirdfactorial()function and argument passed isnum-1which is 2. - In third 
factorial()function, test expression inside if statement is true. The statementreturn num*factorial(num-1);is executed, which calls fourthfactorial()function and argument passed isnum-1which is 1. - The fourth 
factorial()function, test expression inside if statement is false. The statementreturn 1;is executed, which returns 1 to thirdfactorial()function. - The thrid 
factorial()function returns 2 to secondfactorial()function. - The second 
factorial()function returns 6 to firstfactorial()function. - Finally, first 
factorial()function returns 24 to themain()function and is displayed. ( The above reference has been taken from www.programiz.com) 

No comments:
Post a Comment