Function Calls Itself /: Write A Program in C To Find The Factorial of A Number Using Recursion
Function Calls Itself /: Write A Program in C To Find The Factorial of A Number Using Recursion
void recursion() {
recursion(); /* function calls itself */
}
int main() {
recursion();
}
The C programming language supports recursion, i.e., a function to call itself. But while using
recursion, programmers need to be careful to define an exit condition from the function,
otherwise it will go into an infinite loop.
Recursive functions are very useful to solve many mathematical problems, such as calculating
the factorial of a number, generating Fibonacci series, etc.
Write a program in C to find the Factorial of a number using recursion.
#include<stdio.h>
int findFactorial(int);
int main()
{
int n1,f;
printf("\n\n Recursion : Find the Factorial of a number :\n");
printf("-------------------------------------------------\n");
printf(" Input a number : ");
scanf("%d",&n1);
f=findFactorial(n1);//call the function findFactorial for factorial
printf(" The Factorial of %d is : %d\n\n",n1,f);
return 0;
}
int findFactorial(int n)
{
if(n==1)
return 1;
else
return(n*findFactorial(n-1));// calling the function findFactorial to itself recursively
}
Input a number : 5
Expected Output :
#include<stdio.h>
int numPrint(int);
int main()
int n = 1;
printf("-------------------------------------------------\n");
numPrint(n);
printf("\n\n");
return 0;
int numPrint(int n)
if(n<=50)
printf(" %d ",n);
numPrint(n+1);
}
Expected Output :
Test Data :
Input number of terms for the Series (< 20) : 10
Expected Output :
#include<stdio.h>
int term;
int fibonacci(int prNo, int num);
void main()
{
static int prNo = 0, num = 1;
printf("\n\n Recursion : Print Fibonacci Series :\n");
printf("-----------------------------------------\n");
printf(" Input number of terms for the Series (< 20) : ");
scanf("%d", &term);
printf(" The Series are :\n");
printf(" 1 ");
fibonacci(prNo, num);
printf("\n\n");
}
if (i == term)
return (0);
else
{
nxtNo = prNo + num;
prNo = num;
num = nxtNo;
printf("%d ", nxtNo);
i++;
fibonacci(prNo, num); //recursion, calling the function fibonacci itself
}
return (0);
}
Test Data :
Input any number to find sum of digits: 25
Expected Output :
#include <stdio.h>
#include<conio.h>
int main()
{
int n1, sum;
printf("\n\n Recursion : Find the sum of digits of a number :\n");
printf("-----------------------------------------------------\n");
printf(" Input any number to find sum of digits: ");
scanf("%d", &n1);
sum = DigitSum(n1);//call the function for calculation
getch();
}
Test Data :
Input 1st number: 10
Input 2nd number: 50
Expected Output :
#include<stdio.h>
int main()
int num1,num2,gcd;
printf("------------------------------------------\n");
scanf("%d",&num1);
printf(" Input 2nd number: ");
scanf("%d",&num2);
gcd = findGCD(num1,num2);
return 0;
while(a!=b)
if(a>b)
return findGCD(a-b,b);
else
return findGCD(a,b-a);
return a;