python實現買啤酒(2元一瓶,4個瓶蓋換一瓶,2個瓶子換一瓶)


題目:啤酒2元一瓶,4個瓶蓋換一瓶,2個瓶子換一瓶,問10元錢能喝幾瓶?

把生活中的事情轉換成代碼,我們首先要做的是找出事情的規律:

  喝酒產生瓶蓋和瓶子,瓶蓋和瓶子又能換酒,酒又產生瓶蓋和瓶子,如此不斷循環,那么就很容易讓人想到遞歸。只要對細節稍加控制,就可以完成計算了。

代碼如下:

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
count = 0
surplus_bottleTop = 0
surplus_bottle = 0
def drinkAndSurplus(bottleTop, bottle):
    global count,surplus_bottleTop,surplus_bottle
    beers = 0
    beers += bottleTop//4
    beers += bottle//2
    count += beers
    bottleTop = bottleTop%4 + beers
    bottle = bottle%2 + beers
    print('本次喝了%d瓶,剩余瓶蓋%d個,剩余瓶子%d個'%(beers, bottleTop, bottle))
    if(bottleTop//4 > 0 or bottle//2 > 0):
        drinkAndSurplus(bottleTop, bottle)
    else:
        surplus_bottleTop = bottleTop
        surplus_bottle = bottle
if __name__ == '__main__':
    money = 10
    count, surplus_bottleTop, surplus_bottle = money//2, money//2, money//2
    print('總共%d元錢,本次喝酒%d瓶,剩余瓶蓋%d個,剩余瓶子%d個'%(money,count,count,count))
    drinkAndSurplus(surplus_bottleTop, surplus_bottle)
    print('總共喝了%d瓶,剩余瓶蓋%d個,剩余瓶子%d個'%(count,surplus_bottleTop,surplus_bottle))

 

執行結果如下:

python新手,大神勿噴!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 啤酒2塊一瓶,4個瓶蓋可換1瓶,2個空瓶可換1瓶,10塊錢可以喝多少瓶? 每瓶啤酒2元,2個空酒瓶或4個瓶蓋可換1瓶啤酒。10元最多可喝多少瓶啤酒? php 有這樣一道智力題:“某商店規定:三個空汽水瓶可以換一瓶汽水。小張手上有十個空汽水瓶,她最多可以換多少瓶汽水喝?”答案是5瓶,方法如下:先用9個空瓶子換3瓶汽水,喝掉3瓶滿的,喝完以后4個空瓶子,用3個再換一瓶,喝掉這瓶滿的,這時候剩2個空瓶子。然后你讓老板先借給你一瓶汽水,喝掉這瓶滿的,喝完以后用3個空瓶子換一瓶滿的還給老板。如果小張手上有n個空汽水瓶,最多可以換多少瓶汽水喝? 三個空汽水瓶可以換一瓶汽水 假設有50瓶飲料,喝完3個空瓶可以換一瓶飲料,依次類推,請問總共喝了多少瓶飲料? 有這樣一道智力題:“某商店規定:三個空汽水瓶可以換一瓶汽水。 有 1000 個一模一樣的瓶子,其中有 999 瓶是普通的水,有一瓶是毒葯。任何喝下毒葯的生物都會在一星期之后死亡。現在,你只有 10 只小白鼠和一星期的時間,如何檢驗出哪個瓶子里有毒葯? vue創建項目很慢,甚至卡的動不了,一瓶潤滑油就夠 有一千瓶水,其中有一瓶是有毒的,老鼠喝了毒的水會在七天后死亡,請問需要幾只老鼠才能找出有毒的那瓶水? Shader——LiquidBottle(液體瓶)
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM