//  Scott DeRuiter        7/16/01
//  Hailstone.java
//  Use recursion to show the hailstone sequence.
//  7/20/2011 - Greenstein: Changed TextReader to Scanner

public class Hailstone          
{ 
	private int number;

	public Hailstone ( )   
  	{
		number = 0;
	}

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

	public void GetNumber ( )  
  	{
		Scanner getinput = new Scanner ( System.in );
		do  
		{
			System.out.print ( "\n\n\nEnter an int (1 to 10000) -> " );
			number = getinput.nextInt ( );
		} while ( number < 1 || number > 10000 );
	}

	public void PrintSequence ( )  
  	{
		Hail ( number );
	}

	public boolean Hail ( int n )   
  	{
		System.out.print ( n + "    " );
		if ( n == 1 )
			return true;
		else if ( n % 2 == 0 )
			return Hail ( n / 2 );
		else
			return Hail ( 3 * n + 1 );
	}
}

Back to Lesson 13 Examples

Back to Java Main Page