0
我參加了課程6.00.1x計算機科學與程序設計入門。我被要求提出一個計劃,計算一年內償還信用卡餘額所需的最低還款額。爲此,我需要使用二分法。計算信用卡還款的二分法
我想出了這段代碼(請看下面)。當我運行代碼時,我得到29591.55作爲答案;然而,我打算得到29157.09。
任何人都可以幫助我解決問題嗎?
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)
選擇一個:http://stackoverflow.com/search?q = [python]bisect+credit+card – roippi
@roippi - 謝謝。我看過其他帖子,但我仍然沒有得到29157.09的答案。 – user2949713
這是一個提示。無論何時'unpaidBalance <0',外部'while'循環結束,無論'還款'金額是否正確。 – martineau