//  Scott DeRuiter             7/5/02
//  Hailstone.java
//  Program prompts the user for a positive integer,
//  then prints out the "hailstone" sequence.
//  7/15/2011 - Greenstein: Changed TextReader to Scanner

import java.util.Scanner;

public class Hailstone   
{
	private int number, counter;

	public Hailstone ( )  
	{
		number = counter = 0;
	}

	public static void main ( String [] args )  
	{
		Hailstone hail = new Hailstone ( );

		hail.GetNumber ( );
		hail.PrintSequence ( );
		hail.PrintCount ( );
	}
	
	public void GetNumber ( )   
	{
		Scanner keyboard = new Scanner ( System.in );

		System.out.print ( "\n\nEnter a positive integer ( 1 - 10000 ) :   " );
		number = keyboard.nextInt ( );
	}

	public void PrintSequence ( )  
	{
		System.out.println ( "\n" );
		if ( number > 0 && number <= 10000 ) 
		{
			while ( number != 1 )  
			{
				System.out.print ( Format.left ( number, 7 ) );
				counter++;
				if ( number % 2 == 0 )
					number /= 2;
				else
					number = number * 3 + 1;
				if ( counter % 10 == 0 )
					System.out.println ( "\n" );
			}
			System.out.print ( Format.left ( number, 7 ) );
		}
	}

	public void PrintCount ( )   
	{
		System.out.println ( "\n\nThe loop executed " + (counter+1) + " times\n\n\n" );
	}
}

Back to Lesson 7 Examples

Back to Java Main Page