Factorial
- Import required packages
- Declare the main class named “Main”.
- Give the main method “public static void main ()”
- Create an object “sc” for the scanner class.
- Get a number from the user and store it in a variable “numberString”.
- Create an object “bigNum” for the static method “BigInteger”.
- Print the output.
- Give function definition for the static method “factorial ()”.
- Check if the value is equal to zero.
- Return 1.
- Else,
- Call the function “factorial ()” recursively until the result is found.
- Check if the value is equal to zero.
- Give the main method “public static void main ()”
The below program is used to find the factorial for the given number using “BigInteger” class.
Explanation of Solution
Program:
//Import required packages
import java.math.*;
import java.util.*;
//Class name
public class Main
{
//Main method
public static void main(String[] args)
{
//Create an object for Scanner
Scanner sc = new Scanner(System.in);
//Print the message
System.out.print("Enter an integer of any size: ");
//Get the string from the user
String numberString = sc.nextLine();
//Create an object for the static method
BigInteger bigNum = new BigInteger(numberString);
//Print the output
System.out.println("Factorial of " + bigNum + " is " + factorial(bigNum));
}
//Static method "factorial"
public static BigInteger factorial(BigInteger value)
{
//Check if the value is equal to zero
if (value.equals(BigInteger.ZERO))
//Return 1
return BigInteger.ONE;
//Else
else
/*Call the function recursively to till the result is found*/
return value.multiply(factorial(value.subtract(BigInteger.ONE)));
}
}
Enter an integer of any size: 50
Factorial of 50 is 30414093201713378043612608166064768844377641568960512000000000000
Want to see more full solutions like this?
Chapter 18 Solutions
Introduction to Java Programming and Data Structures, Comprehensive Version (11th Edition)
- (Same-number subsequence) JAVA Class Name: Exercise22_05 Write an O(n) program that prompts the user to enter a sequence of integers ending with 0 and finds the longest subsequence with the same number. Sample Run 1 Enter a series of numbers ending with 0:2 4 4 8 8 8 8 2 4 4 0The longest same number sequence starts at index 3 with 4 values of 8 Sample Run 2 Enter a series of numbers ending with 0: 34 4 5 4 3 5 5 3 2 0 The longest same number sequence starts at index 5 with 2 values of 5arrow_forward(Computer-Assisted Instruction) The use of computers in education is referred to as computer-assisted instruction (CAI). Write a program that will help an elementary school student learn multiplication. Use a Random object to produce two positive one-digit integers. The program should then prompt the user with a question, such as How much is 6 times 7? The student then inputs the answer. Next, the program checks the student’s answer. If it’s correct, display the message "Very good!" and ask another multiplication question. If the answer is wrong, display the message "No. Please try again." and let the student try the same question repeatedly until the student finally gets it right. A separate method should be used to generate each new question. This method should be called once when the application begins execution and each time the user answers the question correctly.arrow_forward(YOU ARE NOT ALLOWED TO USE ARRAYLIST IN THIS PROJECT)Write a Java program to simulate a blackjack game of cards. The computer will play the role of the dealer. The program will randomly generate the cards dealt to the player and dealer during the game. Cards in this game will be represented by numbers 1 to 13 with Ace being represented by a 1. Remember, that face cards (i.e. Jack, Queen, and King) are worth 10 points to a hand while an Ace can be worth 1 or 11 points depending on the user’s choice. The numbered cards are worth their number value to the hand.arrow_forward
- (Intro to Java) Explain the answers to the below questions. include a written answer to the question using step-by-step explanation 1. Write a method called arrayTimesFive The method takes one array of doubles as a parameter It multiplies each element in the array by 5 and stores the result It returns nothingarrow_forward3. (Eliminate duplicates) Write a method that returns a new array by eliminating the duplicate values in the array using the following method header: public static int[] eliminate Duplicates (int[] list) Write a test program that reads in ten integers, invokes the method, and displays the result.arrow_forward(using recursive function) Write programs that implement the following equations п Σ Y = 7K k=0 **please answer quicklyarrow_forward
- (Intro to Java) Explain the answers to the below questions. include a written answer to the question using step-by-step explanation 4. Write the linearSearch method as follows using the algorithm provided in class: The method is named linearSearch It takes on array of doubles as a parameter It takes a double value to locate in the array as a second parameter It returns the integer location (index) in the array where the value is located Or, it returns -1 if the value cannot be foundarrow_forwardWrite a recursive function that displays the number of even and odd digits in an integer using the following header: void evenAndOddCount(int value) Write a test program that prompts the user to enter an integer and displays the number of even and odd digits in it.arrow_forward(Intro to Java) explain the answers to the below questions using step-by-step explanation.arrow_forward
- (Intro to Java) explain the answers to the below questions using step-by-step explanation.arrow_forward(Population projection) The U.S. Census Bureau projects population based on thefollowing assumptions:■■ One birth every 7 seconds■■ One death every 13 seconds■■ One new immigrant every 45 secondsWrite a program to display the population for each of the next five years. Assume thatthe current population is 312,032,486, and one year has 365 days. Hint: In Java, iftwo integers perform division, the result is an integer. The fractional part is truncated.For example, 5 / 4 is 1 (not 1.25) and 10 / 4 is 2 (not 2.5). To get an accurate resultwith the fractional part, one of the values involved in the division must be a numberwith a decimal point. For example, 5.0 / 4 is 1.25 and 10 / 4.0 is 2.5.arrow_forward(Intro to Java) Avoid using breaks in loops or statments. Ice Cream Truck In this program, you will write a menu program for an ice cream truck. Name your program IceCream.java For this program, you will need to write 3 methods, as follows: dispayTotal Takes a double parameter for the total food price. Takes another double parameter for the percent tip calls the calculateTax method to add taxes to the price. calls the calculateTip method to add the tip to the price. Displays the price to two decimal places along with the message "With taxes and tip, your total comes to $<price>" returns nothing Note that you will need to watch the 16 videos before you can complete this method calculateTax Takes in a double parameter for the subtotal for the food. Calculates the tax, assuming the tax rate is 9.25% in San Jose adds the tax onto the the total price, returns the update price calculateTip Takes in a double parameter for the current bill (price of food + tax). Takes in…arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education