使用递归计算每月最低信用卡付款

时间:2017-07-02 19:27:45

标签: python recursion iteration credit-card

我已经使用迭代编写了EdX课程作业问题的解决方案。

该代码采用信用卡余额和年利率计算12个月内支付余额(加上任何利息)所需的最低月付款。

这是我的迭代代码:

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

我已经尝试过递归版本,但我已经超过了最大递归深度:

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)

1 个答案:

答案 0 :(得分:0)

我刚刚做了这个。您需要在递归中添加一个计数器,这是您在循环中执行的操作。

所以,比如:

def function(a,b,counter=12):
    """
    Docstring goes here
    """
    if counter == 1:
        return a+b
    else:
        return function(a,b,counter-1)

我发现很难在edX的这些在线课程中获得真正的帮助,因为课程对你发布的内容非常严格,我从来没有得到与“讨论”之外的个人交谈的提议。如果我能从edX课程获得一对一的帮助,我会支付额外费用,老实说。

无论如何,希望能帮到你。