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