/************************************************
FINANCIAL SIMULATION

You have a bank account whose annual interest 
rate depends on the amount of money you have 
in your account at the beginning of each year.  
Your annual rate starts at 3%, and grows by an
additional half a percent for each thousand 
dollars in your account up to, but not exceeding 
8%. Interest in this account is compounded monthly
at the annual rate.  Each year you also make a 
deposit (before the bank figures out what your 
rate is, fortunately).  Write a program that 
simulates these financial interactions.  It 
should first ask the user how many years he 
wants to simulate, and at the beginning of each 
year it should ask the user how much he wants to 
deposit.
***************************************************/
#include <iostream>
using namespace std;

int main()
{
  //Get number of years
  int Y;
  cout << "How many years would you like to simulate: ";
  cin >> Y;

  /*************************************************/
  /******** S I M U L A T E   Y   Y E A R S ********/
  /*************************************************/
  double B = 0;
  for(int k = 0; k < Y; k++)
  {
    //Get payment amount & adjust balance
    double P;
    cout << "Payment for year " << k+1 << " : ";
    cin >> P;
    B = B + P;

    //Compute annual rate R
    int T = B / 1000;    //Get number of 1000's
    double R = 3 + 0.5*T;//Compute rate
    if (R > 8.0)         //Correct for 8% cap
      R = 8.0;

    //Compute new balance with interest for the year
    double r = R/100;
    for(int i = 0; i < 12; i++)
      B = B*(1 + r/12);
  }
  
  //Print final balance
  cout << "Final balance is " << B << " dollars" << endl;
  
  return 0;
}