/* 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
*/

#include <stdio.h>

int main () {
  int i;
  double prod;
  double r;

  /* read r */
  printf ("Please enter the number r for computing powers:  ");
  scanf ("%lf", &r);

  /* printing powers */
  printf ("First Solution\n");
  prod = 1;
  i = 0;
  while (i <= 10) {
    printf ("\t%6.2lf", prod);
    prod *= r;  
    i++;
  }
  printf("\n");

        
  printf ("Second Solution\n");
  printf ("\t%6.2lf", 1.0);
  prod = 1; 
  i = 0;  
  do {
    i++; 
    prod *= r;
    printf ("\t%6.2lf", prod);
  }
  while (i < 10);                        
  printf("\n");
    
    
  printf ("Third Solution\n");
  printf ("\t%6.2lf", 1.0);
  prod = r;
  printf ("\t%6.2lf", prod);
  i = 0;
  while (i < 9) {
    i++;
    prod *= r;  
    printf ("\t%6.2lf", prod);
  }
  printf("\n");


} // end main
