Months to clear the loan
A loan charges whole-percent interest each month and takes a fixed monthly payment. Simulate month by month to see how long, if ever, it takes to clear.
- Each month: balance gains floor(balance × rate ÷ 100), then the payment is subtracted.
- Count a month whenever the balance is still positive at the top of the loop.
- A loan that is still not cleared after 1200 months is hopeless: return -1.
- All arithmetic is whole-unit and deterministic.
loan_payoff(loan_minor: int, monthly_payment: int, monthly_rate_percent: int) → int
Where you start
def loan_payoff(loan_minor: int, monthly_payment: int, monthly_rate_percent: int) -> int:
Worked examples
| Call | Result |
|---|---|
loan_payoff(100, 30, 0) | 4 |
loan_payoff(100, 100, 0) | 1 |
loan_payoff(50, 10, 0) | 5 |
loan_payoff(100, 50, 10) | 3 |
Hint
Walk the loop with a guard count; if you run out of iterations, the debt never dies.
Reference solution in Python
def loan_payoff(loan_minor: int, monthly_payment: int, monthly_rate_percent: int) -> int:
balance, months = loan_minor, 0
while balance > 0 and months < 1200:
balance += balance * monthly_rate_percent // 100
balance -= monthly_payment
months += 1
return -1 if balance > 0 else months