Как я могу рассчитывать проценты ежеквартально и согласовывать их вместе, чтобы получилась хорошая таблица - PullRequest
0 голосов
/ 14 июля 2020

Итак, окончательный результат, который я собираюсь получить, выглядит следующим образом: (числа с * - числа, введенные пользователем)

   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

Буду признателен за любой совет.

...