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 user
- factorial=GetFactorial(number); Calling GetFactorail Function and received output from the called function(i.e GetFactorial) will be sored in factorial
- int 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:
 


