Problema extraído do curso do MIT de Python:
Escreva um programa para calcular o saldo do cartão de crédito após um ano, se uma pessoa paga apenas o pagamento mensal mínimo exigido pela empresa do cartão de crédito a cada mês.
As seguintes variáveis contêm valores conforme descrito abaixo:
balance - o saldo em dívida no cartão de crédito
annualInterestRate - taxa de juros anual como um decimal
monthlyPaymentRate - taxa de pagamento mensal mínima como um decimal
Para cada mês, calcule as declarações sobre o pagamento mensal e saldo restante. No final de 12 meses, imprima o saldo restante. Certifique-se de imprimir no máximo dois dígitos decimais de precisão - portanto, imprima Saldo remanescente : 813.41
ao invés de Saldo remanescente: 813.4141998135
Portanto, o seu programa apenas imprime uma coisa: o saldo restante no final do ano no formato:
Saldo remanescente: 4784.0
Um resumo da matemática necessária é encontrado abaixo:
Monthly interest rate= (Annual interest rate) / 12.0
Minimum monthly payment = (Minimum monthly payment rate) x (Previous balance)
Monthly unpaid balance = (Previous balance) - (Minimum monthly payment)
Updated balance each month = (Monthly unpaid balance) + (Monthly interest rate x Monthly unpaid balance)
Exemplo de saída correta:
For balance = 3329, annual interest rate of 0.2, result is: 310
Entendendo o problema (uma tabela):
Minha tentativa:
annualInterestRate = 0.18 #exemplo
Monthly_interest_rate = annualInterestRate/12.0
monthlyPaymentRate = 0.02
Previous_balance =5000
#mes_0
Updated_balance_each_month = 0
Monthly_unpaid_balance =0
mes = 0
while mes < 12:
Monthly_unpaid_balance = (Previous_balance) - ( (monthlyPaymentRate) * (Previous_balance))
Updated_balance_each_month += (Monthly_unpaid_balance) + (Monthly_interest_rate * Monthly_unpaid_balance)
print(Updated_balance_each_month)
mes += 1
print("Monthly_unpaid_balance : {0:.2f}".format(Monthly_unpaid_balance))
Meu código, aparentemente, só calcula no mês 0...