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)
- (Game: ATM machine) Use the Account class created in our previous Lab Exercise to simulate an ATM machine. Create ten accounts in an array with id 0, 1, . . ., 9, and initial balance $100. The system prompts the user to enter an id. If the id is entered incorrectly, ask the user to enter a correct id. Once an id is accepted, the main menu is displayed as shown in the sample run. You can enter a choice 1 for viewing the current balance, 2 for withdrawing money, 3 for depositing money, and 4 for exiting the main menu. Once you exit, the system will prompt for an id again. Thus, once the system starts, it will not stop.arrow_forward(GREATEST COMMON DIVISOR) The greatest common divisor of integers x and y is the largest integer that evenly divides into both x and y. Write and test a recursive function gcd that returns the greatest common divisor of x and y. The gcd of x and y is defined recursively as follows: If y is equal to 0, then gcd (x, y) is x; otherwise, gcd (x, y) is gcd (y, x % y), where % is the remainder operator.arrow_forward(Recursion and Backtracking) Write the pseudo code for a recursive method called addB2D that takes two binary numbers as strings, adds the numbers and returns the result as a decimal integer. For example, addB2D(‘‘101’’, ‘‘11’’) should return 8 (because the strings are binary representation of 5 and 3, respectively). Your solution should not just simply convert the binary numbers to decimal numbers and add the re- sults. An acceptable solution tries to find the sum by just directly processing the binary representations without at first converting them to decimal values.arrow_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_forwardPlease complete the following Java program using the math.random function. USE THE Math.random() class. DO NOT use arrays, the Random function. (i.e keep the program simple using while loops, if/else, for loops, etc)arrow_forward
- (in Java language) Write a method that is inspired by a photo app that does the following. Ask the user to enter a size of array between 2 to 10. Based on the size entered, write a loop which asks the user to fill values into an integer array. Print the array contents using Arrays.toString(). For this integer array, write a logic that returns true if there exists a place to split the array such that the sum of the numbers on one side is equal to the sum of the numbers on the other. Otherwise return false. Examples: If the array is {1, 1, 1, 2, 1} then return true. If the array is {2, 1, 1, 2, 1} then return false If the array is {10, 10} then return true.arrow_forward(Comparing Integers) Write a program that prompts the user to enter the edges of a triangle and compares them. If all edges are equal, display Equilateral Triangle; if only two edges are equal, display Isosceles Triangle and if none of the edges are equal, display Scalene Triangle.arrow_forward(Sort three numbers) Write the following function to display three numbers in increasing order: def displaySortedNumbers(num1, num2, num3): Write a test program that prompts the user to enter three numbers and invokes the function to display them in increasing order. Here are some sample runs:arrow_forward
- (language: Intellij-Java) Part One: Create a method which takes two int parameters and swaps them. Print the values before and after swapping. (Example: ‘before swap: x = 5, y = 10; after swap: x=10, y=5). Part2: Write a method which gets a value from the user and convert that value from Celsius to Fahrenheit: - For Celsius to Fahrenheit conversion use: F = 9*C/5 + 32 - Print the result of the conversion Part3: Create a method which takes an integer array input from the user and reverses the elements in the array. Print the reversed array. - For example, the expected “reversed” result for an array [5,33,0,8,2] is [2,8,0,33,5] - Don't use any inbuilt/existing array reverse method. Try to write the reversing logicarrow_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(Airline Reservations System) A small airline has just purchased a computer for its new automated reservations system. The president has asked you to program the new system. You’ll write a program to assign seats on each flight of the airline’s only plane (capacity: 10 seats). Your program should display the following menu of alternatives: Please type 1 for "first class" Please type 2 for "economy" If the person types 1, then your program should assign a seat in the first class section (seats 1– 5). If the person types 2, then your program should assign a seat in the economy section (seats 6– 10). Your program should then print a boarding pass indicating the person's seat number and whether it’s in the first class or economy section of the plane. Initialize all the elements of the array to 0 to indicate that all seats are empty. As each seat is assigned, set the corresponding element of the array to 1 to indicate that the seat is no longer available. Your program should, of course,…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