Программа будущих выплат по прогнозам

Я работаю над программой оценки будущей платы за обучение для вуза, поскольку она увеличивается на 7% ежегодно, так что сколько лет потребуется, чтобы удвоить сумму. Допустим, текущая сумма составляет 10000 долларов США.

Вот мой код Java:

public class FutureTuition{
 public static void main(String[] args) {
       double tuition = 10000;
       //7% of tuition = 7/100 * 10000 = 700
        Int year = 1;

        while(tuition < 20000){
                tuition = tuition+700;
                year++;
     }

     System.out.println("Tuition will be doubled in " + year + " years");}}

В результате получилось: Плата за обучение увеличится вдвое через 16 лет

Я не думаю, что это правильно, что не так?

Я не думаю, что это правильно - вы действительно должны убедиться, прежде чем размещать здесь. В его нынешнем виде вы даже не знаете, есть ли у вас проблема
Tim 22.03.2018 21:36
year должен начинаться с 0
Andrew Lohr 22.03.2018 21:42

Совершенно очевидно, что это неправильное число. 10.000 * 1.07 ^ x> = 20.000 Логарифм: log 10.000 + x * log 1.07> = log 20.000 Изолировать x: x = (log (20000) - log (10000)) ÷ log (1,07) => x = 10,244

Georg Muehlenberg 22.03.2018 21:43

Хорошо, но моя проблема в том, что 7% превратились в 1,07 вместо 0,07.

Rpro 22.03.2018 22:08

Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что проблема, которая у вас возникла, связана не с кодом, а с задаваемым вопросом. Сообщество SO не может помочь ответить на этот вопрос.

Adam Hawkes 22.03.2018 22:16
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
5
100
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш код почти правильный. Просто надбавка должна составлять 1,07 * стоимость обучения, а не 700 квартир каждый раз. Какую версию Java вы использовали? Это работает с 1.8.

public class FutureTuition{
    public static void main(String[] args) {
        double tuition = 10000;
        //7% of tuition = 7/100 * 10000 = 700
        Integer year = 0;

        while(tuition < 20000){
            tuition = tuition * 1.07;
            year++;
        }

        System.out.println("Tuition will be doubled in " + year + " years");}

}

обратите внимание, что я совсем недавно изменил код. Год действительно должен начинаться с 0, а не с 1.

Georg Muehlenberg 22.03.2018 21:52

Мой вопрос касается кода, когда я использую 1.07 с приращением, как рекомендовано, он работал нормально, но мне нужно проинформировать, почему это так.

Rpro 22.03.2018 23:07

Если вы добавите 700 долларов в первый раз, ваша плата за обучение увеличится до 10700. Итак, если вы теперь добавите 7%, вы должны спросить себя: 7% от чего? Из первоначальной суммы 10000 или из новой 10700? Это ситуация с процентной ставкой.

Georg Muehlenberg 22.03.2018 23:11

Википедия по сложным процентам: en.wikipedia.org/wiki/Compound_interest Вы рассчитали простой процент.

Georg Muehlenberg 22.03.2018 23:11

Простые проценты: 10000 -> 10700 -> 11400 -> ... Сложные проценты: 10000 -> 10700 -> 11449 -> ...

Georg Muehlenberg 22.03.2018 23:12

Спасибо я понял

Rpro 23.03.2018 11:37

Это здорово, пожалуйста. Хорошего дня.

Georg Muehlenberg 23.03.2018 13:46

Другие вопросы по теме