C Program to find Factorial of Number without using function
Find Factorial of Number without using function
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<span style="color: #004a43">#</span><span style="color: #004a43">include</span><span style="color: #800000"><</span><span style="color: #40015a">stdio.h</span><span style="color: #800000">></span> <span style="color: #004a43">#</span><span style="color: #004a43">include</span><span style="color: #800000"><</span><span style="color: #40015a">conio.h</span><span style="color: #800000">></span> <span style="color: #200080;font-weight: bold">void</span> <span style="color: #400000">main</span><span style="color: #308080">(</span><span style="color: #308080">)</span> <span style="color: #406080">{</span> <span style="color: #200080;font-weight: bold">int</span> i<span style="color: #308080">,</span>number<span style="color: #308080">,</span>factorial<span style="color: #406080">;</span> <span style="color: #003060">printf</span><span style="color: #308080">(</span><span style="color: #800000">"</span><span style="color: #0f69ff">n</span><span style="color: #1060b6">Enter the number : </span><span style="color: #800000">"</span><span style="color: #308080">)</span><span style="color: #406080">;</span> <span style="color: #003060">scanf</span><span style="color: #308080">(</span><span style="color: #800000">"</span><span style="color: #0f69ff">%d</span><span style="color: #800000">"</span><span style="color: #308080">,</span><span style="color: #308080">&</span>n<span style="color: #308080">)</span><span style="color: #406080">;</span> factorial <span style="color: #308080">=</span> <span style="color: #008c00">1</span><span style="color: #406080">;</span> <span style="color: #200080;font-weight: bold">for</span><span style="color: #308080">(</span>i<span style="color: #308080">=</span><span style="color: #008c00">1</span><span style="color: #406080">;</span>i<span style="color: #308080"><</span><span style="color: #308080">=</span>n<span style="color: #406080">;</span>i<span style="color: #308080">+</span><span style="color: #308080">+</span><span style="color: #308080">)</span> factorial <span style="color: #308080">=</span> factorial <span style="color: #308080">*</span> i<span style="color: #406080">;</span> <span style="color: #003060">printf</span><span style="color: #308080">(</span><span style="color: #800000">"</span><span style="color: #0f69ff">n</span><span style="color: #1060b6">Factorial of </span><span style="color: #0f69ff">%d</span><span style="color: #1060b6"> is </span><span style="color: #0f69ff">%d</span><span style="color: #800000">"</span><span style="color: #308080">,</span>n<span style="color: #308080">,</span>factorial <span style="color: #308080">)</span><span style="color: #406080">;</span> getch<span style="color: #308080">(</span><span style="color: #308080">)</span><span style="color: #406080">;</span> <span style="color: #406080">}</span> |
Output :
1 2 |
Enter the number : 5 Factorial of 5 is 120 |
Explanation of Program :
Before Explaining the program let us see how factorial is calculated –
1 2 3 4 5 6 7 8 |
Factorial of <span style='color:#008c00'>5</span> <span style='color:#308080'>=</span> <span style='color:#008c00'>5</span><span style='color:#308080'>!</span> <span style='color:#308080'>=</span> <span style='color:#008c00'>5</span> <span style='color:#308080'>*</span> <span style='color:#008c00'>4</span><span style='color:#308080'>!</span> <span style='color:#308080'>=</span> <span style='color:#008c00'>5</span> <span style='color:#308080'>*</span> <span style='color:#008c00'>4</span> <span style='color:#308080'>*</span> <span style='color:#008c00'>3</span><span style='color:#308080'>!</span> <span style='color:#308080'>=</span> <span style='color:#008c00'>5</span> <span style='color:#308080'>*</span> <span style='color:#008c00'>4</span> <span style='color:#308080'>*</span> <span style='color:#008c00'>3</span> <span style='color:#308080'>*</span> <span style='color:#008c00'>2</span><span style='color:#308080'>!</span> <span style='color:#308080'>=</span> <span style='color:#008c00'>5</span> <span style='color:#308080'>*</span> <span style='color:#008c00'>4</span> <span style='color:#308080'>*</span> <span style='color:#008c00'>3</span> <span style='color:#308080'>*</span> <span style='color:#008c00'>2</span> <span style='color:#308080'>*</span> <span style='color:#008c00'>1</span><span style='color:#308080'>!</span> <span style='color:#308080'>=</span> <span style='color:#008c00'>5</span> <span style='color:#308080'>*</span> <span style='color:#008c00'>4</span> <span style='color:#308080'>*</span> <span style='color:#008c00'>3</span> <span style='color:#308080'>*</span> <span style='color:#008c00'>2</span> <span style='color:#308080'>*</span> <span style='color:#008c00'>1</span> <span style='color:#308080'>*</span> <span style='color:#008c00'>0</span><span style='color:#308080'>!</span> <span style='color:#308080'>=</span> <span style='color:#008c00'>5</span> <span style='color:#308080'>*</span> <span style='color:#008c00'>4</span> <span style='color:#308080'>*</span> <span style='color:#008c00'>3</span> <span style='color:#308080'>*</span> <span style='color:#008c00'>2</span> <span style='color:#308080'>*</span> <span style='color:#008c00'>1</span> <span style='color:#308080'>*</span> <span style='color:#008c00'>1</span> <span style='color:#308080'>=</span> <span style='color:#008c00'>120</span> |
Firstly accept the number whose factorial is to be found.
1 2 |
<span style='color:#003060'>printf</span><span style='color:#308080'>(</span><span style='color:#800000'>"</span><span style='color:#0f69ff'>n</span><span style='color:#1060b6'>Enter the number : </span><span style='color:#800000'>"</span><span style='color:#308080'>)</span><span style='color:#406080'>;</span> <span style='color:#003060'>scanf</span><span style='color:#308080'>(</span><span style='color:#800000'>"</span><span style='color:#0f69ff'>%d</span><span style='color:#800000'>"</span><span style='color:#308080'>,</span><span style='color:#308080'>&</span>n<span style='color:#308080'>)</span><span style='color:#406080'>;</span> |
We have to iterate from 1 to (n-1) using for/while/do-while loop. In each iteration we are going to multiply the current iteration number and result.
1 2 |
<span style='color:#200080;font-weight:bold'>for</span><span style='color:#308080'>(</span>i<span style='color:#308080'>=</span><span style='color:#008c00'>1</span><span style='color:#406080'>;</span>i<span style='color:#308080'><</span><span style='color:#308080'>=</span>n<span style='color:#406080'>;</span>i<span style='color:#308080'>+</span><span style='color:#308080'>+</span><span style='color:#308080'>)</span> factorial <span style='color:#308080'>=</span> factorial <span style='color:#308080'>*</span> i<span style='color:#406080'>;</span> |
Some Precautions to be taken :
Precaution 1 : Initialize ‘factorial’ variable
1 |
factorial <span style='color:#308080'>=</span> <span style='color:#008c00'>1</span><span style='color:#406080'>;</span> |
before going inside loop we must initialize factorial variable to 1 since by default each c variable have garbage value. If we forgot to initialize variable then garbage value will be multiplied and you will get garbage value as output.
Precaution 2 : For loop must start with 1
Suppose by mistake we write following statement –
1 2 |
<span style='color:#200080;font-weight:bold'>for</span><span style='color:#308080'>(</span>i<span style='color:#308080'>=</span><span style='color:#008c00'>0</span><span style='color:#406080'>;</span>i<span style='color:#308080'><</span><span style='color:#308080'>=</span>n<span style='color:#406080'>;</span>i<span style='color:#308080'>+</span><span style='color:#308080'>+</span><span style='color:#308080'>)</span> factorial <span style='color:#308080'>=</span> factorial <span style='color:#308080'>*</span> i<span style='color:#406080'>;</span> |
then in the very first iteration we will get factorial = 0 and in all successive iteration we will get result as 0 since anything multiplied by Zero is Zero
Precaution 3 : Try to accept lower value to calculate factorial
We have 2 bytes to store the integer in Borland C++ compiler, so we can have maximum limit upto certain thousand. Whenever we try to accept value greater than 20 we will get factorial overflow.