Я ответил на этот вопрос на edx: напишите программу для расчета баланса кредитной карты через год, если человек платит только минимальный ежемесячный платеж, требуемый компанией-эмитентом кредитной карты каждый месяц.
Я смогответить на проблему, используя итеративный процесс, но я попытался с помощью рекурсии. Мне удалось заставить проблему рекурсии работать.
Мой вопрос: почему мой первый код рекурсии не сработал и создал бесконечный цикл. Я просто новичок, просто хочу улучшить свои знания. Большое спасибо за помощь
'' Это мой первый код '' ''
def recur(balance,n):
if n < 1:
return balance
else:
return ((1+monthly_interest_rate)*(recur(balance, n-1)) - (minimumPaymentRate*(recur(balance, n-1)))) balance = 42
annualInterestRate = 0.2
n = 12
minimumPaymentRate = 0.04
monthly_interest_rate = annualInterestRate/12.0
recur(balance, n)
'' 'Второй код сработал' ''
def recur(balance,n):
if n < 1:
return balance
else:
bal_recur = recur(balance, n-1)
payment_made = (minimumPaymentRate*bal_recur)
return ((1+monthly_interest_rate)*(bal_recur - payment_made))
balance = 42
annualInterestRate = 0.2
n = 12
minimumPaymentRate = 0.04
monthly_interest_rate = annualInterestRate/12.0
recur(balance, n)