Я работаю над программой оценки будущей платы за обучение для вуза, поскольку она увеличивается на 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 лет
Я не думаю, что это правильно, что не так?
year должен начинаться с 0
Совершенно очевидно, что это неправильное число. 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
Хорошо, но моя проблема в том, что 7% превратились в 1,07 вместо 0,07.
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что проблема, которая у вас возникла, связана не с кодом, а с задаваемым вопросом. Сообщество SO не может помочь ответить на этот вопрос.




Ваш код почти правильный. Просто надбавка должна составлять 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.
Мой вопрос касается кода, когда я использую 1.07 с приращением, как рекомендовано, он работал нормально, но мне нужно проинформировать, почему это так.
Если вы добавите 700 долларов в первый раз, ваша плата за обучение увеличится до 10700. Итак, если вы теперь добавите 7%, вы должны спросить себя: 7% от чего? Из первоначальной суммы 10000 или из новой 10700? Это ситуация с процентной ставкой.
Википедия по сложным процентам: en.wikipedia.org/wiki/Compound_interest Вы рассчитали простой процент.
Простые проценты: 10000 -> 10700 -> 11400 -> ... Сложные проценты: 10000 -> 10700 -> 11449 -> ...
Спасибо я понял
Это здорово, пожалуйста. Хорошего дня.