#include<stdio.h> #include<conio.h> void main() { int i,number,factorial; printf("Enter the number : "); scanf("%d",&n); factorial = 1; for(i=1;i<=n;i++) factorial = factorial * i; printf("Factorial of %d is %d",n,factorial ); getch(); }
Output :
Enter the number : 5 Factorial of 5 is 120
Explanation of Program :
Before Explaining the program let us see how factorial is calculated -
Factorial of 5 = 5! = 5 * 4! = 5 * 4 * 3! = 5 * 4 * 3 * 2! = 5 * 4 * 3 * 2 * 1! = 5 * 4 * 3 * 2 * 1 * 0! = 5 * 4 * 3 * 2 * 1 * 1 = 120
Firstly accept the number whose factorial is to be found.
printf("nEnter the number : "); scanf("%d",&n);
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.
for(i=1;i<=n;i++) factorial = factorial * i;
Some Precautions to be taken :
Precaution 1 : Initialize ‘factorial’ variable
factorial = 1;
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 -
for(i=0;i<=n;i++) factorial = factorial * i;
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.
No comments:
Post a Comment