
/**
 Displays a two-dimensional table showing how 
 interest rates affect bank balances.
*/
public class InterestTable2
{
	public static final int ROWS = 10;
	public static final int COLUMNS = 6;

	public static void main(String[] args)
	{
		int[][] table = new int[ROWS][COLUMNS];
		for (int row = 0; row < ROWS; row++)
			for (int column = 0; column < COLUMNS; column++)
				table[row][column] =
					 getBalance(1000.00, row + 1, (5 + 0.5 * column));
			   
		System.out.println("Balances for Various Interest Rates " +
                           "Compounded Annually");
		System.out.println("(Rounded to Whole Dollar Amounts)");
		System.out.println( );
		System.out.println("Years  5.00%  5.50%  6.00%  6.50%  7.00%  7.50%");

		showTable(table);
	}

    /**
     Precondition: The array anArray has ROWS rows and COLUMNS columns.
     Postcondition: The array contents are displayed with dollar signs.
    */
    public static void showTable(int[][] anArray)
    {
      for (int row = 0; row < ROWS; row++)
      {
         System.out.print((row + 1) + "      ");
         for (int column = 0; column < COLUMNS; column++)
             System.out.print("$" + anArray[row][column] + "  ");
         System.out.println( );
      }
    }

	public static int getBalance(double startBalance, int years, double rate)
	{
		double runningBalance = startBalance;
		for (int count = 1; count <= years; count++)
			runningBalance = runningBalance * (1 + rate / 100);
		 
		return (int)(Math.round(runningBalance));
	}
}
