python实现买啤酒(2元一瓶,4个瓶盖换一瓶,2个瓶子换一瓶)

Posted wangxiaotiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python实现买啤酒(2元一瓶,4个瓶盖换一瓶,2个瓶子换一瓶)相关的知识,希望对你有一定的参考价值。

周末无所事事,看见群里互动答题,刚好这两天在自学python,就顺便练练语法了。

题目:啤酒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新手,大神勿喷!

以上是关于python实现买啤酒(2元一瓶,4个瓶盖换一瓶,2个瓶子换一瓶)的主要内容,如果未能解决你的问题,请参考以下文章

javascript计算啤酒2元一瓶,4个盖换一瓶,2个瓶换一瓶,10元钱最多喝多少瓶

饮料换购

酒干倘卖无之递归算法

1 元钱买一瓶汽水,两个空汽水瓶换一瓶汽水。现有 20 元钱,问最多可以喝到多少瓶汽水?

小芳家的辣椒油,酱油,盐用完了,妈妈给她20元钱去买,盐2元/袋,酱油5元一瓶,辣椒 油4元瓶,

[C语言]——喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,共有20元,请问可以喝多少瓶汽水?