//  Scott DeRuiter             7/5/02
//  Hailstone.java
//  Program prompts the user for a positive integer,
//  then prints out the "hailstone" sequence.

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 ( );
	}
	
	public void GetNumber ( )   
	{
		TextReader keyboard = new TextReader ( );
		System.out.print ( "\n\nEnter a positive integer ( 1 - 10000 ) :   " );
		number = keyboard.readlnInt ( );
	}
	
	public void PrintSequence ( )  
	{
		TextWriter outFile;
		String name = "hail.txt";
		outFile = new TextWriter ( name );
		outFile.println ( "" );
		outFile.println ( "" );
		System.out.println ( "\n" );
		if ( number > 0 && number <= 10000 ) 
		{
			while ( number != 1 )  
			{
				System.out.print ( Format.left ( number, 7 ) );
				outFile.print ( Format.left ( number, 7 ) );
				counter++;
				if ( number % 2 == 0 )number /= 2;
				elsenumber = number * 3 + 1;
				if ( counter % 10 == 0 )   
				{
					System.out.println ( "\n" );
					outFile.println ( "\n" );
				}
			}
			System.out.print ( Format.left ( number, 7 ) );
			outFile.print ( Format.left ( number, 7 ) );
		}
		PrintCount ( outFile );
		outFile.close ( );
	}
	
	public void PrintCount ( TextWriter t )   
	{
		System.out.println ( "\n\nThe loop executed " + (counter+1) + " times\n\n\n" );
		t.println ( );
		t.println ( );
		t.println ( "The loop executed " + (counter+1) + " times" );
		t.println ( );
		t.println ( );
	}
}

Back to Lesson 14 Examples

Back to Java Main Page