1 回答

TA貢獻1816條經驗 獲得超4個贊
我認為這就是您要實現的目標。切換到 while 循環更合適,因為您不確定需要循環多少次。只要 x 大于 0,這種情況就會繼續。
循環方法
x = (SA + (AI / 12) * SA) - MP
payment_number = 0
while x > 0:
x = (x + (AI / 12) * x) - MP
CIwoP = (x + (AI / 12) * x) - x # interest every month
ptd = MP * payment_number # payment to date
payment_number += 1
print(payment_number) # payment no.
print(ptd) # amount paid to date
print(CIwoP) # interest for that month
print(x) # balance for each month after payment
遞歸方法
def remainb(x, payment_number=0):
if x < 0: return
x = (x + (AI / 12) * x) - MP
CIwoP = (x + (AI / 12) * x) - x # interest every month
ptd = MP * payment_number # payment to date
payment_number += 1
print(payment_number) # payment no.
print(ptd) # amount paid to date
print(CIwoP) # interest for that month
print(x) # balance for each month after payment
remainb(x, payment_number)
順便提一下,使用良好的描述性變量名稱而不是 x 是一個好習慣,我 :)
添加回答
舉報