编写一个函数pay_off_period(PV,PMT,i),该函数计算直到还清贷款为止的最短年限

时间:2018-09-29 13:07:30

标签: python python-3.x while-loop return

编写一个函数pay_off_period(PV,PMT,i),该函数计算在满足以下条件的情况下直到还清贷款为止的最短年限:

  • 该贷款所拥有的金额当前等于PV
  • 偿还贷款的金额
  • 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。我要去哪里错了。

1 个答案:

答案 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)