Python 计算信用卡还款的二分法
我正在学习6.00.1x计算机科学与编程入门课程。我被要求提出一个计划,计算一年内还清信用卡余额所需的最低还款额。为此,我需要使用二分法 我已经想出了这段代码(请看下面)。当我运行代码时,我得到了29591.55作为答案;然而,我应该得到29157.09 有人能帮我解决哪里出了问题吗Python 计算信用卡还款的二分法,python,bisection,Python,Bisection,我正在学习6.00.1x计算机科学与编程入门课程。我被要求提出一个计划,计算一年内还清信用卡余额所需的最低还款额。为此,我需要使用二分法 我已经想出了这段代码(请看下面)。当我运行代码时,我得到了29591.55作为答案;然而,我应该得到29157.09 有人能帮我解决哪里出了问题吗 balance = 320000 annualInterestRate = 0.2 monthlyInterestRate = annualInterestRate/12.0 lowerRepayment = ba
balance = 320000
annualInterestRate = 0.2
monthlyInterestRate = annualInterestRate/12.0
lowerRepayment = balance/12
upperRepayment = (balance * (1 + monthlyInterestRate)**12)/12
repayment = (lowerRepayment + upperRepayment)/2
unpaidBalance = balance
while unpaidBalance >= 0:
repayment = round(((lowerRepayment + upperRepayment)/2), 2)
unpaidBalance = balance
numberOfRepayments = 0
while numberOfRepayments < 12 and unpaidBalance >= 0:
numberOfRepayments += 1
monthlyUnpaidBalance = unpaidBalance - repayment
increment = monthlyUnpaidBalance * monthlyInterestRate
unpaidBalance = monthlyUnpaidBalance + increment
if unpaidBalance < -0.01:
lowerRepayment = repayment
elif unpaidBalance > 0.01:
upperRepayment = repayment
print 'Lowest Payment: ' + str(repayment)
余额=320000
年利率=0.2
月利率=年利率/12.0
lowerRepayment=余额/12
还款上限=(余额*(1+月利息)**12)/12
还款=(低还款+高还款)/2
未付款余额=余额
取消支付余额>=0时:
还款=四舍五入((低还款+高还款)/2),2)
未付款余额=余额
还款次数=0
当还款数量<12且未援助余额>=0时:
还款次数+=1
monthlyUnpaidBalance=未支付余额-还款
增量=月收益率平衡*月收益率
取消支付余额=每月支付余额+增量
如果未支付余额<-0.01:
低还款=还款
elif unpaidBalance>0.01:
还款上限=还款
打印“最低付款额:”+str(还款)
您必须根据需要更改条件
如果取消支付余额>0.01:
低还款=还款
elif unpaidBalance<-0.01:
还款上限=还款
2.当unpaidBalance介于-0.01和0.01之间时结束循环选择一个:@roippi-谢谢。我看了其他帖子,仍然没有得到29157.09的答案。这里有一个提示。只要
取消支付余额<0
外部while
循环结束,无论还款金额是否正确。谢谢@martineau。我该怎么做?我尝试将另一个条件添加到外部while循环中,但它没有响应。简单地说,它需要保持循环,直到unpaidBalance
接近零——超过或低于。您还必须注意,它不会进入这样一种情况,即每次迭代还款值不再以一种方式或另一种方式改变,因为这样它将进入一个无限循环。