私はPython /プログラミングの初心者です。私は MIT オープン コースウェアの問題を割り当てられました。
クレジット カードの残高を 12 か月以内に完済するための、毎月の最低固定額を計算するプログラムを作成してください。
raw_input()
次の浮動小数点数として取得します。
1) クレジットカードの未払い残高 2) 年利率の小数
固定された最低支払い額、借金を完済するのにかかる月数 (最大で 12、場合によっては 12 未満)、および残高 (負の数である可能性が高い) を出力します。
月初(当月分のお支払い前)の残高をもとに、月々の複利計算で利息を計算するものとします。毎月の支払いは $10 の倍数である必要があり、すべての月で同じです。この支払いスキームを使用すると、残高がマイナスになる可能性があることに注意してください。
答えは:
balance = float(raw_input('Enter the outstanding balance on your credit card: '))
interest = float(raw_input('Enter the annual credit card interest rate as a decimal: '))
minPay = 10
newBalance = balance
while balance > 0:
for month in range(1,13):
newBalance = newBalance*(1+(interest/12))-minPay
if newBalance <=0:
break
if newBalance <= 0:
balance = newBalance
else:
newBalance = balance
minPay = minPay+10
print 'RESULT'
print 'Monthly payment to pay off debt in 1 year: ' + str(minPay)
print 'Number of months needed: ' + str(month)
print 'Balance: ' + str(round(balance,2))
私の質問:
1) 未処理の入力残高として 1200 を使用し、金利として 0.18 を使用します。minPay = 120、month = 11、balance = - 10.05 に到達する方法を誰かが言葉で説明できますか?
newBalance = newBalance* (1 +(interest/12)) - minPay.
残高として 1200 を使用すると、newBalance = 1200 * (1 +(.18/12)) - 10 = 1218 - 10 = 1208 になります。
2) newBalance は <= 0 ではないため、プログラムは else ステートメントに進みます。else ステートメントの newBalance = balance 部分で何が起こっているのか。newBalance を 1200 に戻しますか (元の残高入力)。
この問題を理解するのに苦労しています。どんな洞察も高く評価されます。