试图找到10的最低倍数来用python偿还信用卡余额

时间:2013-11-03 05:22:10

标签: python python-2.7

我是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)

上述情况正常,但事实上我缺乏一种机制,在最终余额小于零之前提供更多的十倍数。

我在这里发布了一个类似的问题,我删除了不同的代码,因为我觉得它无法进入任何地方,无论如何我随后重写了代码。

1 个答案:

答案 0 :(得分:0)

如果是这样,那么你需要重构你的功能。而不是付款,使用余额作为参数。您的功能应该输出您的付款,而不是将其作为参数。然后,由于你每月都这样做,最终的产出(不管它是什么)将大于余额/ 12,因为这将是你如何支付核心债务而没有利息。

所以,现在我们去找最糟糕的事情。整个余额未付加利息。那将是(年利率x余额)+余额。除以12,你得到你应该每月支付的最高金额。

在那里,既然你有你的最小值和最大值,你就有一个循环的起点和终点。只需为每个循环的付款添加1,直到您获得支付所包含权益的最低金额。