亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

運行直到貸款余額達到 0 的遞歸函數的語法問題

運行直到貸款余額達到 0 的遞歸函數的語法問題

阿晨1998 2023-06-20 15:44:59
SA=1000.00AI=0.12MP=100.00def remainb(x):if x==0:    return 0else:     return    x=(SA+(AI/12)*SA)-MP    for i in range(x,1000000):        x=(x+(AI/12)*x)-MP        CIwoP=(x+(AI/12)*x)-x #interest every month        ptd=MP*i#payment to date        #ptdreal=(ptd-CIwoP)        #rbal=(CIwP-ptd)        print(i)#payment no.        print(ptd)#amount paid to date        print(CIwoP)#interest for that month        print(x)#balance for each month after payment        #if rbal==0: return 0        #return 多次嘗試對此進行調試,但數小時內反復失敗。坦率地說,我被困住了。如果有人能就如何解決這個問題給我建議(例如,運行循環直到 SA==0),我將永遠感激不已。先感謝您。
查看完整描述

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 是一個好習慣,我 :)


查看完整回答
反對 回復 2023-06-20
  • 1 回答
  • 0 關注
  • 164 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號