In this article we will learn to implement a C program to find the factorial of a given number. A C program is provided below which reads a number and returns the factorial of that number using recursive and non-recursive functions.
Program is as follows:
/*
* C program to find the factorial of a given number using recursive and non-recursive functions
* Author: P.S.SuryaTeja
*/
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
int factorial(int n)
{
int i, fact = 1;
for(i = n; i > 1; i--)
fact = fact * i;
return fact;
}
int rfactorial(int n)
{
if(n == 0 || n==1)
return 1;
else
return n * rfactorial(n - 1);
}
int main(int argc, char **argv)
{
int n;
printf("Enter a positive number: ");
scanf("%d", &n);
printf("\n");
printf("Non-recursive solution: %d! = %d", n, factorial(n));
printf("\n");
printf("Recursive solution: %d! = %d", n, rfactorial(n));
getch();
return 0;
}
Input and output for the above program is as follows:
Enter a positive number: 5
Non-recursive solution: 5! = 120
Recursive solution: 5! = 120
Suryateja Pericherla, at present is a Research Scholar (full-time Ph.D.) in the Dept. of Computer Science & Systems Engineering at Andhra University, Visakhapatnam. Previously worked as an Associate Professor in the Dept. of CSE at Vishnu Institute of Technology, India.
He has 11+ years of teaching experience and is an individual researcher whose research interests are Cloud Computing, Internet of Things, Computer Security, Network Security and Blockchain.
He is a member of professional societies like IEEE, ACM, CSI and ISCA. He published several research papers which are indexed by SCIE, WoS, Scopus, Springer and others.
Leave a Reply