【发布时间】:2016-05-06 02:38:13
【问题描述】:
请我试图找出我的推理出了什么问题,因此我的结果。 我正在学习一门在线课程,我应该计算在 12 个月内消除信用卡债务所需的最低数字。我得到一个年利率,一个债务金额(余额)的值,以及一个每月付款应该增加的值(10 的倍数)。 根据我的推理,我生成的代码应该在几个月内迭代,但如果余额值不为零,它应该增加每月付款并重新计算。 我的价值观(我认为)与预期结果略有偏差。我的代码是这样的:
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)。
请有人帮忙指点一下我哪里错了?
谢谢!
【问题讨论】:
-
My result is: 360 (incorrect, should be 360).? -
不应该 if(balance > 0) 与 for each 处于同一级别,而不是在 for each 内部?
-
当我这样做时,我得到了一个无限循环,@Aziuth。
-
@OverlordQ,抱歉错字,已修复。
-
@Sina:但是你想要做的是迭代monthlyPayment的可能值,对吧?所以应该是while(monthlyPayment不足):重置余额,测试monthlyPayment是否正确,如果不正确则增加monthlyPayment
标签: python