Yahoo 知識+ 將於 2021 年 5 月 4 日 (美國東岸時間) 停止服務,而 Yahoo 知識+ 網站現已轉為僅限瀏覽模式。其他 Yahoo 資產或服務,或你的 Yahoo 帳戶將不會有任何變更。你可以在此服務中心網頁進一步了解 Yahoo 知識+ 停止服務的事宜,以及了解如何下載你的資料。

匿名
匿名 發問於 電腦與網際網路程式設計 · 3 星期前

python while-loop的瓶蓋兌換問題?

題目:

有一活動可以用4個瓶蓋換一個全新的飲料,在某人已經有N個瓶蓋的情況下,某人可以跟朋友借一個瓶蓋為前提的,試問某人總共可以喝到多少瓶飲料?

初步想法就是計算商數跟餘數,但是就不知道要怎麼打跟while有關的程式碼了,因此想請問一下大家

更新:

1.那如果在加上在活動中總共會擁有的瓶蓋數呢?

2.感謝大家的回答,那若是不使用+= /-=呢?因為還沒學到那個部分

2 個解答

評分
  • 3 星期前

    # !/usr/bin/env python3

    #

    caps = int(input("已經有?個瓶蓋: "))

    loan = int(input("可以跟朋友借?個瓶蓋: "))

    exch = int(input("用?個瓶蓋換一個全新的飲料: "))

    bott = 0

    while (caps + loan) >= exch :

      if caps >= exch:

        temp = caps // exch

        caps = caps % exch + temp

        print('用{0}個瓶蓋換{1}個全新的飲料 剩餘{3}瓶蓋'.format(temp*exch, temp, loan, caps))

        bott += temp

      else:

        temp = (caps + loan) // exch

        if (temp + (caps+loan) - (temp * exch)) < loan: break

        bott = bott +temp

        caps = caps - ((temp * exch) - temp)

        print('借{2}個瓶蓋,用{0}個瓶蓋換{1}瓶全新的飲料 龜環{2} 剩餘{3}瓶蓋'.format(temp*exch,temp, loan, caps))

    print ('done - 總共可以喝到{0}瓶 共換{1}瓶蓋, 餘{2}瓶蓋.'.format(bott,bott*exch,caps))

  • 阿平
    Lv 5
    3 星期前

    以下提供有借有還的解法

    def main():

        drinks=0

        caps=int(input("caps number:"))

        exch=int(input("exchange number:"))

        while caps>=exch:

            new=caps//exch

            old=caps%exch

            caps=new+old

            drinks+=new #drinks=drinks+new

        if caps==(exch-1):

            drinks+=1 #drinks=drinks+1

            caps=0

        print("new drinks:",drinks)

    if __name__=="__main__":

        main()

還有問題嗎?立即提問即可得到解答。