Question: The Problem A Hailstone series is defined as follows: start with any integer value greater than 0 , say x . If x is even,

The Problem
A Hailstone series is defined as follows: start with any integer value greater than 0, say x. If x is even, then the next value in the series is x2; if x is odd, then the next value in the series is 3x+1. Now apply the same rules to create the next value in the series, and so on. The name Hailstone comes from the property that the values in such a series alternate between going up and down (up for odd values and down for even values.)
For instance, here is the Hailstone series generated from starting value 17:
17,52,26,13,40,20,10,5,16,8,4,2,1
Note that if a Hailstone series ever reaches the value 1, then the next value generated is 4, the next is 2, and the next is 1 again. Thus, when a Hailstone series reaches 1, then it has converged in the sense that the rest of the series is 4,2,1,4,2,1,dots.
The Hailstone series is the subject of a long-standing mathematical open question: given an arbitrary positive integer as a starting value, will the resulting Hailstone series converge as just described? For all positive integers of size at most 1.21012, it is known that the series does converge. To date, however, there is no formal proof that all such series must converge. (There is an interesting and readable article about the Hailstone series in the January 1984 issue of Scientific American.)
For this assignment, you will write a program that allows users to enter a starting value from which the program computes and outputs the corresponding Hailstone series (stopping with 1 if it ever reaches 1). After the initial program works, there are a number of other requirements to change it slightly, one step at a time, as explained below.
Setup
Follow these steps to set up a project for this lab.
Create a new Eclipse project by copying ProjectTemplate (if needed, see Creating a New Project from a Project Template for details). Name the new project Hailstone.
Open the src folder of this project and then open (default package). As a starting point you should use ProgramWithIOAndStaticMethod.java. Rename it Hailstone1 and delete the other files from the project (if needed, see Creating a Program from a Skeleton (also Renaming a Java Program) for details).
Method
Edit Hailstone1.java (including updating comments appropriately) to ask the user for a positive integer and then compute and output the corresponding Hailstone series. The generation and output of the series should be done in a static method declared as follows (copy the method header, including the documentation comment, from the browser and paste it into Eclipse, replacing only the myMethod method provided in the skeleton program):
/**** Generates and outputs the Hailstone series starting with the given integ ***
cparam n
the starting integer
aparam out
the output stream
private static void generateSeries(int n, SimpleWriter out){dots}
Copy Hailstone1. java to create Hailstone2. java (right-click on Hailstone1.java to get the contextual pop-up menu and choose Copy, then right-click on (default package) and choose Paste, providing the new name Hailstone2). Change generateseries (including its Javadoc comments) so that it also computes and outputs the length of the series.
Copy Hailstone2. java to create Hailstone3. java. Change generateSeries (including its Javadoc comments) so that
 The Problem A Hailstone series is defined as follows: start with

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!