//****************************************************************************
//*
//*  Program CS252.java
//*
//*  Author: Stephen J. Franz 
//*  
//*  Oct 10, 2004
//*
//*  Function  Create a geometric progression using:
//*    (1) iteration and 
//*    (2) formula
//*
//****************************************************************************
import cs1.Keyboard;

public class CS252
{
	public static void main(String args[])
	{
		int n=0; 	//  number of terms
		double r=0; //  common ratio
		double a=0; //  initial term
		
		double iterationResult=0;
		double formulaResult=0; 
		
		int indx=0; //  index used looping
		
		//  get user values for calculations
		while (n<1)
		{
		  System.out.print("Enter the number of terms: (Must be 1 or more) ");
		  n = Keyboard.readInt();
		}
		
		System.out.print("\nEnter the common ratio: ");
		r = Keyboard.readDouble();

		System.out.print("\nEnter the initial term: ");
		a = Keyboard.readDouble();
		
		//  Echo values back to user.
		System.out.println("");
		System.out.println("The following data will be used for the " +
		 "geometric progression calculation");

		System.out.println("Number of terms: (n):" + n);
		System.out.println("Common ratio:    (r):" + r);
		System.out.println("Initial term:    (a):" + a);

		//  calculate result using the formula
		formulaResult= (a - a * Math.pow(r,n))/(1-r);
		
		//  calculate result using do loop
		indx = n;
		do
		{
		  iterationResult += (a * Math.pow(r,(indx-1)));
		  indx--;
		}
		while (indx > 0); 
		
		//  Display results of both calculations
		System.out.println("\n  Formula Result: " + formulaResult); 
		System.out.println("\nIteration Result: " + iterationResult); 
	}
}