Exercise:
Write a Java Program to calculate factorial of a number.
1.Compute Factorial using for loop.
Click Here to View the Solution!
public class FactorialCalculator {
public static void main(String[] args) {
int number = 13;
long factorial = 1;
for(int i = 1; i <= number; ++i)
{
// factorial = factorial * i;
factorial *= i;
}
System.out.printf("Factorial of %d = %d", number, factorial);
}
}
Click Here to View the Output!
Factorial of 13 = 6227020800
Click Here to View the Explanation!
- This program is used for finding the factorial of a number by using the for loop.
- A number 13 is stored into an integer variable
number
initially and a variable factorial is initialized as 1. - This program functions over a for loop and loops till the variable
number
hence going through all numbers till 13 while multiplying these numbers one by one and consistently storing the result into the variable factorial. - The data type
long
is used for storing the value in the variable factorial because the final value of the factorial is expected to be large and the data type int cannot store large values. - Finally, the value in the variable factorial is displayed along with
number
as “Factorial of 13 = 6227020800”.
2.Compute Factorial using BigINTEGER.
Click Here to View the Solution!
import java.math.BigInteger;
public
class FactorialCalculator {
public static void main(String[] args) {
int number = 21;
BigInteger factorial = BigInteger.ONE;
for(
int i =
1; i <= number; ++i)
{
factorial = factorial.multiply(BigInteger.valueOf(i));
}
System.out.printf(
"Factorial of %d = %d", number, factorial);
}
}
Click Here to View the Output!
Factorial of 21 = 51090942171709440000
Click Here to View the Explanation!
- This program utilizes the
BigInteger
instead of the long data type for the variable factorial for storing a large value. The variablenumber
is initialized as 21. - The
BigInteger
data type can be used through the use of a Java librarymath.BigInteger
and also a function,multiply()
instead of*
for calculating the factorial because “*
” cannot be used next toBigInteger
. - The multiplication of the of the factorial is done by casting the
number
to theBigInteger
and looping through all the numbers tillnumber = 21
in the for loop. - The multiplied values are consistently stored into the variable factorial and the result is displayed on the screen.
3.Compute Factorial using for loop
Click Here to View the Solution!
public
class FactorialCalculator {
public static void main(String[] args) {
int number =
6, i =
1;
long factorial =
1;
while(i <= number)
{
factorial *= i;
i++;
}
System.out.printf(
"Factorial of %d = %d", number, factorial);
}
}
Click Here to View the Output!
Factorial of 6 = 720
Click Here to View the Explanation!
- This program is used for calculating the factorial of a number like the previous program but instead of the for loop,
while loop
is used. - Initially, a variable
number
is initialized as 6, a variablei
as 1 and a variable factorial as 1. - Like the above program using for loop, this program loops and increments the variable i,
number
of times inside the body of thewhile loop
and keeps multiplying its values and storing them into the variable factorial. - Both the
for loop
andwhile loop
are considered to be appropriate for performing this task however,for loop
is considered a better option since it knows the number of iterations till the variablenumber
. - Finally, the result of the factorial of the number 6 is displayed on the screen as “Factorial of 6 = 720”.