How To Write A C Program To Find Factorial Using Recursion


Guide on use recursion in c. Readers will also learn how to write a program to find the factorial of a number using recursive function. Necessary algorithms and code examples are given within the article.

How to write a C program to find the factorial of a number using recursion.

Recursion is a good technique in C which can be very beneficial in C if used in wise and error free manner. Recursion means the phenomenon of a function invoking itself. Use of recursion results in less amount of coding and lowers the bulk of the program but increases the logical complexity overall, so
practice recursion if you have a good hold on your algorithm and it will help you if used successfully. Finding a factorial of a number using recursion is a good way to understand functionality and implementation of recursive
techniques.

Sequential Algorithm :

1.Take the number from user(say n,you will find the factorial of this number).
2.create an int variable (say var) and assign it to 1.
3.var=var*n
4.n=n-1
5.go to step 3 unless n==1
6.output var as the required factorial.

Recursive Algorithm :

module A(main function):
1.take the input from the user.
2.check and make sure it is a positive number.
3.pass the number to module B.
4.Print the value returned by module B as the required factorial.

module B(user defined function)
1.accept the value from calling module.
2.check if it is 1 , if yes return 1 to calling module.
3.decrement the value of the argument by 1.
4.pass it to module B.
5.get the value returned by module B and return it to calling module after multiplying it by the actual argument.

code::

#include
#include

int fact(int n);

void main()
{
int n;
clrscr();
printf("/nEnter an integer:");
scanf("%d",&n);
printf("/nThe factorial of % is = %d",n,fact(n));
getch();
}


int fact(int n)
{
if(n==1)
return 1;
else
return(n*fact(n-1));
}



Explanation : Well it is actually pretty self explanatory, the main function is pretty basic and doing only input output work and calling the user defined function fact() with an argument. fact() receives an argument and checks if it is 1 , if yes it immediately sends back 1 to the calling function. In the else case it again calls the fact() function (itself) with the original argument decremented by one and returns to the calling function whatever value it is returned by the called function multiplied by the original argument. This calling the oneself thing with C functions is known as recursion.
Let us check how it works with an example, suppose the user enters 3 as input.

fact(3) is called

fact receives 3 , argument is not 1 , hence fact(2) is called

fact receives 2 , argument is not 1 , hence fact(1) is called

fact receives 1 , argument is 1 , hence 1 is returned

2*1 is returned

3*2*1 is returned

6 is printed as the factorial

understanding the work of functions in these different levels is all you need to understand how this program works. Hope I have done a good job explaining. But keep one thing in mind if not used correctly recursion can easily lead to never ending loops inside your program execution, for example in this case if we pass a negative number to fact() it will never become 1 no matter how many times we decrement it and the recursion process will go on endlessly. That's it now you know how to find the factorial of a number using recursion in C.


Related Articles

How To Control Anger?

Have you ever been angry and later on felt sad for being angry on some one or something? Do you want to control your anger ? Is anger good or not ? The following article will discuss about anger and measures through which we can control our anger.

How to attend phone Interview

Looking for tips on how to be effective during a phone interview for a job? This article provides useful tips for novices who are participating in their very first phone interview with a prospective employer.

How To Diagnose and Prevent Dengue Fever

This article tells about the expressions of Dengue fever and how to understand if a person is suffering from Dengue fever. Also read further to know about the investigations for Dengue Fever and treatment for Dengue fever.

How to decide on a Career

Are you confused about how to choose a career and is it creating a lot of tension in deciding about where to go? Read this article to get an idea in short about how to think and decide about your future career.

How to study for exams?

Are you looking for correct ways to study and prepare for exams? This article gives you tips with examples on how to study for exams.

More articles: How to

Comments

No responses found. Be the first to comment...


  • Do not include your name, "with regards" etc in the comment. Write detailed comment, relevant to the topic.
  • No HTML formatting and links to other web sites are allowed.
  • This is a strictly moderated site. Absolutely no spam allowed.
  • Name:
    Email: