Итак, окончательный результат, который я собираюсь получить, выглядит следующим образом: (числа с * - числа, введенные пользователем)
Enter original amount: 1000*
Enter annual interest rate: 4*
Enter years: 5*
Year Q1 Value Q2 Value Q3 Value Q4 Value
1 1010.00 1020.00 1030.00 1040.00
2 1050.00 1060.00 1070.00 1080.00
3 1090.00 1100.00 1110.00 1120.00
4 1130.00 1140.00 1150.00 1160.00
5 1170.00 1180.00 1190.00 1200.00
Это результат, который у меня есть:
Year Q1 Value Q2 Value Q3 Value Q4 Value
1 1040.00
2 1080.00
3 1120.00
4 1160.00
5 1200.00
Это мой код:
double oMoney;
double interestRate;
int numberYears;
double value;
System.out.println("Please enter the original amount of money: ");
oMoney = CONSOLE.nextDouble();
System.out.println("Please enter the desired interest rate: ");
interestRate = CONSOLE.nextDouble();
System.out.println("Please enter the number of years you wish to forecast from 1 - 10: ");
numberYears = CONSOLE.nextInt();
System.out.printf("Enter original amount: %4.0f\n",oMoney);
System.out.printf("Enter annual interest rate: %-4.0f\n",interestRate);
System.out.printf("Enter years: %d\n",numberYears);
System.out.println("\nYear" + " " + " Q1 Value" + " Q2 Value" + " Q3 Value" + " Q4 Value");
for(int i = 1; i <= numberYears; i++) //numberYears loop
{
value = oMoney * (1 + i * interestRate / 100);
System.out.printf("%-10d %10.2f\n",i,value);
}
Уравнение, которое я использую сейчас, чтобы получить годовую процентную ставку, это v = p * (1 + y * r / 100), в котором p является исходным суммы, y - количество лет, а r - процентная ставка.
Уравнение, которое я получил для этого задания, говорит, что нужно использовать его для нахождения квартальных значений: v = p * (1 + (y - 1 + q / 4) * r / 100).
Я попытался вложить число лет l oop с другим внутри, чтобы увеличить значение q в уравнении, например:
for(int i = 1; i <= numberYears; i++)
{
value = oMoney * (1 + numberYears * interestRate / 100);
for(int j = 1; j <= quarterly; j++)
{
value = oMoney * (1 + (i - 1 + j / 4) * interestRate / 100);
System.out.printf("%-10d \t\t\t%10.2f\n",i,value);
}
System.out.printf("%-10d %10.2f\n",i,value);
}
, но результат далек от того, что я ищу, поскольку он многократно печатает годы и одни и те же числа несколько раз. Вот результат, который я получаю, когда пробую вложенные циклы for:
Year Q1 Value Q2 Value Q3 Value Q4 Value
1 1000.00
1 1000.00
1 1000.00
1 1040.00
1 1040.00
2 1040.00
2 1040.00
2 1040.00
2 1080.00
2 1080.00
3 1080.00
3 1080.00
3 1080.00
3 1120.00
3 1120.00
4 1120.00
4 1120.00
4 1120.00
4 1160.00
4 1160.00
5 1160.00
5 1160.00
5 1160.00
5 1200.00
5 1200.00
Буду признателен за любой совет.