I've written a solution for an EdX course homework problem using iteration.
The code takes a credit card balance and annual interest rate to calculate the minimum monthly payment required to pay off the balance (plus any interest) in 12 months.
Here is my iterative code:
def minimum_payment_iter(ann_interest, balance):
month_int = ann_interest/12
remaining = balance
payment = 10
months = 1
while remaining > 0:
months = 1
payment += 10
remaining = balance
while months < 13:
remaining -= payment
remaining += remaining*month_int
months += 1
return payment
I've taken a stab at doing the recursive version, but I've exceeded the maximum recursion depth:
def minimum_payment_recur(ann_interest, balance, payment = 10):
month_int = ann_interest/12
remaining = balance
month = 1
if remaining <= 0:
return payment
else:
remaining -= payment
remaining += remaining*month_int
month += 1
return minimum_payment_recur(ann_interest, balance, payment + 10)