0

我是 Python 的新手,我目前被困在这个学习问题上。

我正在尝试制作一个程序,该程序将输出偿还信用卡余额所需的 10 的最小公倍数。每个月支付一次,并且每个月必须相同,以满足问题的要求,并且还必须考虑每月的利息。

def debt(payment):
balance = 3329
annualInterestRate = 0.2
month = 1
finalbalance = balance

while month <= 12:
    #Monthly interest rate
    rate=(annualInterestRate / 12.0)

    #Monthly unpaid balance
    finalbalance = round(finalbalance - payment,2)

    #Updated balance each month
    finalbalance = round(finalbalance + (rate * finalbalance),2)

    #Moves month forward
    month = month + 1

#Shows final fingures  
print('Lowest Payment: ' + str(payment))

debt(10)

上述工作正常,除了我缺乏一种机制来为问题提供更大的十倍​​数,直到最终余额变得小于零。

我在这里发布了一个类似的问题,其中包含我删除的不同代码,因为我觉得它无处可去,随后我还是重写了我的代码。

4

1 回答 1

0

如果是这样,那么您需要重组您的功能。使用余额作为参数,而不是付款。您的函数应该输出您的付款,而不是将其作为参数。然后,由于您每月执行此操作,最终输出(无论是什么)将大于余额 / 12,因为这将是您支付核心债务的方式,没有利息。

所以,现在我们去寻找最糟糕的事情。全部未付余额加上利息。那将是(年利率x余额)+余额。将其除以 12,您将获得每月应支付的最高金额。

在那里,既然您有了最小值和最大值,那么您就有了循环的起点和终点。只需将每个循环的付款加 1,直到您获得支付所包含利息的最低金额。

于 2013-11-03T07:21:02.053 回答