/* program provides a framework for studying simple loop invariants
   the basic problem is to read a number r and print
   r^0, r^1, r^2, ..., r^10
*/
package loopInvariants;

import java.util.Scanner;

public class LoopInvariants1 {

  public static void main (String argv [ ]) {
      int i;
      double prod;
      double r;
      Scanner fileIn = new Scanner (System.in);

      /* read r */
      System.out.print ("Please enter the number r for computing powers:  ");
      r = fileIn.nextDouble ( );
      
      /* printing powers */
      System.out.print ("First Solution\n");
      prod = 1;
      i = 0;
      while (i <= 10) {
          System.out.print ("\t" + prod);
          prod *= r;  
          i++;
      }
      System.out.print("\n");
      
      System.out.print ("Second Solution\n");
      System.out.print (1.0);
      prod = 1; 
      i = 0;  
      do {
          i++; 
          prod *= r;
          System.out.print ("\t" + prod);
      }
      while (i < 10);                        
      System.out.print("\n");
      
      System.out.print ("Third Solution\n");
      System.out.print (1.0);
      prod = r;
      System.out.print (prod);
      i = 0;
      while (i < 9) {
          i++;
          prod *= r;  
          System.out.print ("\t" + prod);
      }
      System.out.print("\n");
        
  } // end main
    
}
