Byron's CSC212 Web Site

CS1 at Oswego

Hypertexknowlogy

Frequently Asked Questions

 
Byron's CSC212 Web Site  
 
 
Programming Challenge Archive

Program Potpouri ( Lab Programming )
Collatz Sequences
 
The program below was featured in the Lab which was devoted operational aspects of Java Application programming with templates in the context of the ``blue'' packages.  

 
  JavaApplication  -- Collatz

   // General Information
   // ---------------------------------------------------
  
   // File:  CollatzApp.java
   // Type:  java application file
   // Date:  Wed Sep  6, 2000
   // Name:  Byron Bahr
   // Line:  Generate a Collatz Sequence
  
   // Application Description
   // ---------------------------------------------------
  
   /*
      Read a positive integer.
      Generate the corresponding Collatz sequence.
   */
  
   // Required Packages
   // ---------------------------------------------------
  
      import blue.io.*;
      import blue.math.*;
  
   // Application Class
   // ---------------------------------------------------
  
      class CollatzApp
      {
         static public void main (String args[])
         {
     // Prompt for the input.
        IO.print ("The Positive Integer?    ");
     // Read the input.
        int a = IO.read_int ();
     // Display the sequence
        while (true)
        {
           IO.print (a + " ");
   if (a == 1) {break; };
   if (Predicates.odd(a) )
   {a = ((3 * a) + 1); continue; };
   if (Predicates.even(a) )
   {a = (a / 2); continue; };
        }
        IO.println ();
        IO.println ();
         }
      }
  
   // Demo
   // ---------------------------------------------------
  
   /*
   $ java CollatzApp
   The Positive Integer?    1
   1 
  
   $ java CollatzApp
   The Positive Integer?    10
   10 5 16 8 4 2 1 
  
   $ java CollatzApp
   The Positive Integer?    100
   100 50 25 76 38 19 58 29 88 44 22 11 34 17 52 26 13 40 20 +
   10 5 16 8 4 2 1 
  
   $ java CollatzApp
   The Positive Integer?    1000
   1000 500 250 125 376 188 94 47 142 71 214 107 322 161 484 +
   242 121 364 182 91 274 137 412 206 103 310 155 466 233 700+
    350 175 526 263 790 395 1186 593 1780 890 445 1336 668 33+
   4 167 502 251 754 377 1132 566 283 850 425 1276 638 319 95+
   8 479 1438 719 2158 1079 3238 1619 4858 2429 7288 3644 182+
   2 911 2734 1367 4102 2051 6154 3077 9232 4616 2308 1154 57+
   7 1732 866 433 1300 650 325 976 488 244 122 61 184 92 46 2+
   3 70 35 106 53 160 80 40 20 10 5 16 8 4 2 1 
  
   */