gpt4 book ai didi

python - 计算一年最低每月信用卡还款额的代码

转载 作者:太空狗 更新时间:2023-10-30 02:58:07 25 4
gpt4 key购买 nike

拜托,我想找出我的推理有什么问题,因此我的结果。我正在学习一个在线类(class),我应该在该类(class)中计算消除 12 个月内信用卡债务所需的最低数字。我只得到一个年利率、一个债务金额(余额)的值,以及每月还款额应该增加的值(10 的倍数)。根据我的推理,我生成的代码应该在几个月内迭代,但如果余额值不为零,它应该增加每月付款并重新计算。我的值(value)观(我认为)与预期结果略有不同。我的代码是这样的:

annualInterestRate = 0.2
monthlyInterestRate = annualInterestRate / 12.0
monthlyPayment = 10

while (balance > 0):

for each in range(0, 12):
balance = balance - monthlyPayment
balance = balance + (monthlyInterestRate * balance)
if (balance > 0):
monthlyPayment += 10
else:
break

print monthlyPayment

对于余额=3329,年利率0.2,我的结果是:310(正确)

对于余额=4773,年利率0.2,我的结果是:380(不正确,应该是440)

对于余额=3926,年利率0.2,我的结果是:340(不正确,应该是360)。

谁能帮我指点一下我哪里错了?

谢谢!

最佳答案

你快到了。您的实现存在一些问题。

首先,您需要在意识到之前测试的每月付款没有支付后重置余额。

其次,您检查余额和增加余额的选项卡是错误的。就目前而言,您每个月每月多支付 10 美元,如果我正确理解您的问题,这不是您想要的。您想在看到少付 10 美元的人在 12 个月内还清后增加每月还款额。

另外一点,您的 else: break 是不必要的,因为它会在进入下一次迭代时跳出 while 循环。

startBalance = int(input("what's the stating balance? "))
balance = startBalance
numMonths = 12

annualInterestRate = 0.2
monthlyInterestRate = annualInterestRate / 12.0
monthlyPayment = 10

while (balance > 0):
balance = startBalance # reset the balance each iteration

print('checking monthly payment of',monthlyPayment)
for each in range(0, numMonths):
balance = balance - monthlyPayment
balance = balance + (monthlyInterestRate * balance)
# print('at month',each,'the balance is',balance)

# changed the indentation below
if (balance > 0):
monthlyPayment += 10

print('you should pay',monthlyPayment,'per month')

关于python - 计算一年最低每月信用卡还款额的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35066252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com