Program 312: Factorial of a number using Recursion
Output:
#include<stdio.h>
int GetFactorial(int number);
main()
{
int number,factorial;
printf("Enter a number for knowing it's factorial\n");
scanf("%d",&number);
factorial=GetFactorial(number);
printf("%d!=%d\n",number,factorial);
}
int GetFactorial(int number)
{
if(number>0)
{
return number*GetFactorial(number-1);
}
else
{
return 1;
}
}
Explanation:- This program starts with initializing :
- number → To store given number to get Factorial
- factorial →Used to store output
- int GetFactorial→ Declaration of function
printf("Enter a number for knowing it's factorial\n"); scanf("%d",&number);To take input from userfactorial=GetFactorial(number);
Calling GetFactorail Function and received output from the called function(i.e GetFactorial) will be sored in factorialint GetFactorial(int number) { if(number>0) { return number*GetFactorial(number-1); } else { return 1; } }Now lets take a number 4 to get factoraial of 4.
now number is greater than 0(i.e 4>0) is true so if part is executed- Now
- return 4*GetFactorial(4-1);
- GetFactorial(3)---> return 3*GetFactorial(3-1)
- Substitute 3*GetFactorial(3-1) in Step 1
- So Step 1 will be return 4*3*GetFactorial(3-1)
- Now again GetFactorial(2)--->return 2*GetFactorial(2-1)
- So Step 4 will be return 4*3*2*GetFactorial(2-1)
- GetFactorial(1)--->return 1*GetFactorial(1-1)
- So again Step 6 will be return 4*3*2*1*GetFactorial(1-1)
- As GetFactorial(0)-->Since if(0>0) is false else part will be executed.So it will return 1.
- So Step 8 will be return 4*3*2*1*1
- Finally it returns value of 4*3*2*1*1=24
- factorial=24 and this will be printed as output
Output:


