编写一个函数pay_off_period(PV,PMT,i),该函数计算在满足以下条件的情况下直到还清贷款为止的最短年限:
PMT在每年的年末(第一笔付款正好从现在开始算起)。
def pay_off_period(PV, PMT, i):
year = 1
n = 1
while PV > year:
year = round((PMT * ((1 - (1+i) ** -(n)) / i)),2)
n += 1
return int(n)
pay_off_period(1578934, 15000*12, 0.1045) == 25
本来应该是25,但是我却是26。我要去哪里错了。
答案 0 :(得分:0)
尝试以下方法。立即检查这些值,并仅在需要时递增计数器。
def pay_off_period(PV, PMT, i):
year = 1
n = 0
while True:
year = round((PMT * ((1 - (1+i) ** -(n)) / i)),2)
if PV <= year:
break
n += 1
return int(n)