二分法を使用して 12 か月でローンを完済するために必要な正確な支払いをセント単位で見つけるためのコードを作成する必要があります。このために作成したコードは機能しますが、目標を超えています。ローンは 12 か月以内に返済されますが、12 回の支払いを行った後、最終的な残高は約 0 になるはずです。しかし、それははるかに大きな負の数です。
私が使用しているコードは次のとおりです。
StartBalance = float(raw_input('Credit Balance in $: '))
AnnualRate = float(raw_input('Annual interest rate in decimals: '))
MonthlyRate = AnnualRate / 12.0
MinPaymentLow = StartBalance / 12.0
MinPaymentHigh = (StartBalance*(1+MonthlyRate)**12.0)/12.0
cent = 0.01
Payment = (MinPaymentHigh+MinPaymentLow)/2.0
while (Payment*12-StartBalance) >= cent:
for month in range(0, 12):
Balance = (StartBalance-Payment)/10*(1+MonthlyRate)
if Balance < 0:
MinPaymentLow = Payment
elif Balance > 0:
MinPaymentHigh = Payment
Payment = (MinPaymentHigh + MinPaymentLow)/ 2.0
print 'RESULT'
print 'Number of months needed: 12'
print 'Montly pay: $', round(Balance,2)