Я подозреваю, что проблема заключается в том, как вы рассчитываете проценты на сбережения человека. Похоже, вы даете им дополнительные 4% от каждого сберегательного вклада, но это игнорирует сложный характер сбережений. Возможно, вы захотите перенести эти 4% -ные вычисления в цикл, чтобы заработанные проценты основывались на всем балансе сбережений:
current_savings = 0
months = 0
monthly_saved = (annual_salary / 12) * portion_saved
while current_savings < portion_down_payment:
current_savings = current_savings * 1.04 + monthly_saved # 4% monthly interest
months = months + 1
print(months)
Теперь этот код предполагает, что использованные вами 4% - этосоответствующая процентная ставка для ежемесячного расчета. Если это годовая процентная ставка (т. Е. APR), вам, вероятно, нужно поделить ее на 12, чтобы получить правильную месячную ставку.