Формула, которую вы используете, похожа на формулу, которую вы использовали бы для расчета будущей стоимости денег с сложным процентом.Это на правильном пути, но вы не хотите делать это вычисление в цикле.Ваши результаты будут слишком большими.
Попробуйте вместо этого.
- Установите начальный инвестиционный баланс на 0.
- Начните цикл в течение x лет.
- Если год нечетный (потому что мы начинаем считать с 0), удвойте платеж.
- Примените проценты к балансу.
- Добавьте платеж к балансу.
Важно сделать этот последний шаг последний , потому что мы только добавляем платеж в конец каждого года.Это означает, что проценты не должны применяться в год 0. (Точнее, он будет применяться к балансу 0).
Если вы все это сделаете, вы получите функцию, которая выглядит следующим образом:
def investment(PMT, n, i):
x = 0
investment_balance = 0
while x < n:
if x % 2 == 1:
PMT = 2* PMT
investment_balance *= (1 + i)
investment_balance += PMT
x = x + 1
return round(investment_balance, 2)
Это работает для примера ввода, который вы дали.