买汽水游戏 – python

一瓶汽水一块钱,两个空瓶或者三个瓶盖可以换一瓶汽水,请问我有20块钱,可以喝到几瓶汽水

无法换汽水后,剩多少空瓶,喝了多少瓶汽水

相关知识点:函数,递归,循环
递归实现

def drink_by_bottle(money, drink_water, empty_bottle, cap_num):
    if money > 0:
        tmp = money
        drink_water = drink_water + tmp
        empty_bottle = empty_bottle + tmp
        cap_num = cap_num + tmp
        money = 0
        print('花钱购买了{}瓶汽水,总共喝了{}瓶汽水,当前手中剩余{}元,瓶子有{}个,瓶盖有{}个'.format(tmp, drink_water, money, empty_bottle, cap_num))
    elif empty_bottle > 1:
        tmp = empty_bottle // 2
        # 喝了的汽水总数 = 手上的空瓶子数+ 买的汽水数量
        drink_water = drink_water + tmp
        # 买完汽水还剩几个盖子
        cap_num = cap_num + tmp
        #  盖子可以买几瓶汽水
        empty_bottle = tmp + empty_bottle % 2
        print('用{}个空瓶换了{}瓶汽水,总共喝了{}瓶汽水,当前手中剩余{}元,瓶子有{}个,瓶盖有{}个'.format(tmp*2, tmp, drink_water, money, empty_bottle, cap_num))

    elif cap_num > 2:
        tmp = cap_num // 3
        drink_water = drink_water + tmp
        empty_bottle = empty_bottle + tmp
        cap_num = tmp + cap_num % 3
        print('用{}个盖子换了{}瓶汽水,总共喝了{}瓶汽水,当前手中剩余{}元,瓶子有{}个,瓶盖有{}个'.format(tmp*3, tmp, drink_water, money, empty_bottle, cap_num))
    if empty_bottle > 1 or cap_num > 2:
        drink_by_bottle(money, drink_water, empty_bottle, cap_num)


while True:
    ins = input('请输入金额(q退出):')
    if ins.isdigit():
        money1 = int(ins)
        drink = 0
        bottle = 0
        cap = 0
        drink_by_bottle(money1, drink, bottle, cap)
    elif ins == 'q':
        print('程序退出')
        break
    else:
        print('请输入数字,谢谢!')








循环实现

while True:
    ins = input('请输入金额(q退出):')
    if ins.isdigit():
        money = int(ins)
        drink_water = 0
        empty_bottle = 0
        cap_num = 0
        while money or empty_bottle > 1 or cap_num > 2:
            if money > 0:
                tmp = money
                drink_water = drink_water + tmp
                empty_bottle = empty_bottle + tmp
                cap_num = cap_num + tmp
                money = 0
                print('花钱购买了{}瓶汽水,总共喝了{}瓶汽水,当前手中剩余{}元,瓶子有{}个,瓶盖有{}个'.format(tmp,
                                                                                                          drink_water,
                                                                                                          money,
                                                                                                          empty_bottle,
                                                                                                          cap_num))
            elif empty_bottle > 1:
                tmp = empty_bottle // 2
                # 喝了的汽水总数 = 手上的空瓶子数+ 买的汽水数量
                drink_water = drink_water + tmp
                # 买完汽水还剩几个盖子
                cap_num = cap_num + tmp
                #  盖子可以买几瓶汽水
                empty_bottle = tmp + empty_bottle % 2
                print('用{}个空瓶换了{}瓶汽水,总共喝了{}瓶汽水,当前手中剩余{}元,瓶子有{}个,瓶盖有{}个'.format(tmp * 2,
                                                                                                              tmp,
                                                                                                              drink_water,
                                                                                                              money,
                                                                                                              empty_bottle,
                                                                                                              cap_num))

            elif cap_num > 2:
                tmp = cap_num // 3
                drink_water = drink_water + tmp
                empty_bottle = empty_bottle + tmp
                cap_num = tmp + cap_num % 3
                print('用{}个盖子换了{}瓶汽水,总共喝了{}瓶汽水,当前手中剩余{}元,瓶子有{}个,瓶盖有{}个'.format(tmp * 3,
                                                                                                              tmp,
                                                                                                              drink_water,
                                                                                                              money,
                                                                                                              empty_bottle,
                                                                                                              cap_num))

    elif ins == 'q':
        print('程序退出')
        break
    else:
        print('请输入数字,谢谢!')








输出

请输入金额(q退出):20
花钱购买了20瓶汽水,总共喝了20瓶汽水,当前手中剩余0元,瓶子有20个,瓶盖有20个
用20个空瓶换了10瓶汽水,总共喝了30瓶汽水,当前手中剩余0元,瓶子有10个,瓶盖有30个
用10个空瓶换了5瓶汽水,总共喝了35瓶汽水,当前手中剩余0元,瓶子有5个,瓶盖有35个
用4个空瓶换了2瓶汽水,总共喝了37瓶汽水,当前手中剩余0元,瓶子有3个,瓶盖有37个
用2个空瓶换了1瓶汽水,总共喝了38瓶汽水,当前手中剩余0元,瓶子有2个,瓶盖有38个
用2个空瓶换了1瓶汽水,总共喝了39瓶汽水,当前手中剩余0元,瓶子有1个,瓶盖有39个
用39个盖子换了13瓶汽水,总共喝了52瓶汽水,当前手中剩余0元,瓶子有14个,瓶盖有13个
用14个空瓶换了7瓶汽水,总共喝了59瓶汽水,当前手中剩余0元,瓶子有7个,瓶盖有20个
用6个空瓶换了3瓶汽水,总共喝了62瓶汽水,当前手中剩余0元,瓶子有4个,瓶盖有23个
用4个空瓶换了2瓶汽水,总共喝了64瓶汽水,当前手中剩余0元,瓶子有2个,瓶盖有25个
用2个空瓶换了1瓶汽水,总共喝了65瓶汽水,当前手中剩余0元,瓶子有1个,瓶盖有26个
用24个盖子换了8瓶汽水,总共喝了73瓶汽水,当前手中剩余0元,瓶子有9个,瓶盖有10个
用8个空瓶换了4瓶汽水,总共喝了77瓶汽水,当前手中剩余0元,瓶子有5个,瓶盖有14个
用4个空瓶换了2瓶汽水,总共喝了79瓶汽水,当前手中剩余0元,瓶子有3个,瓶盖有16个
用2个空瓶换了1瓶汽水,总共喝了80瓶汽水,当前手中剩余0元,瓶子有2个,瓶盖有17个
用2个空瓶换了1瓶汽水,总共喝了81瓶汽水,当前手中剩余0元,瓶子有1个,瓶盖有18个
用18个盖子换了6瓶汽水,总共喝了87瓶汽水,当前手中剩余0元,瓶子有7个,瓶盖有6个
用6个空瓶换了3瓶汽水,总共喝了90瓶汽水,当前手中剩余0元,瓶子有4个,瓶盖有9个
用4个空瓶换了2瓶汽水,总共喝了92瓶汽水,当前手中剩余0元,瓶子有2个,瓶盖有11个
用2个空瓶换了1瓶汽水,总共喝了93瓶汽水,当前手中剩余0元,瓶子有1个,瓶盖有12个
用12个盖子换了4瓶汽水,总共喝了97瓶汽水,当前手中剩余0元,瓶子有5个,瓶盖有4个
用4个空瓶换了2瓶汽水,总共喝了99瓶汽水,当前手中剩余0元,瓶子有3个,瓶盖有6个
用2个空瓶换了1瓶汽水,总共喝了100瓶汽水,当前手中剩余0元,瓶子有2个,瓶盖有7个
用2个空瓶换了1瓶汽水,总共喝了101瓶汽水,当前手中剩余0元,瓶子有1个,瓶盖有8个
用6个盖子换了2瓶汽水,总共喝了103瓶汽水,当前手中剩余0元,瓶子有3个,瓶盖有4个
用2个空瓶换了1瓶汽水,总共喝了104瓶汽水,当前手中剩余0元,瓶子有2个,瓶盖有5个
用2个空瓶换了1瓶汽水,总共喝了105瓶汽水,当前手中剩余0元,瓶子有1个,瓶盖有6个
用6个盖子换了2瓶汽水,总共喝了107瓶汽水,当前手中剩余0元,瓶子有3个,瓶盖有2个
用2个空瓶换了1瓶汽水,总共喝了108瓶汽水,当前手中剩余0元,瓶子有2个,瓶盖有3个
用2个空瓶换了1瓶汽水,总共喝了109瓶汽水,当前手中剩余0元,瓶子有1个,瓶盖有4个
用3个盖子换了1瓶汽水,总共喝了110瓶汽水,当前手中剩余0元,瓶子有2个,瓶盖有2个
用2个空瓶换了1瓶汽水,总共喝了111瓶汽水,当前手中剩余0元,瓶子有1个,瓶盖有3个
用3个盖子换了1瓶汽水,总共喝了112瓶汽水,当前手中剩余0元,瓶子有2个,瓶盖有1个
用2个空瓶换了1瓶汽水,总共喝了113瓶汽水,当前手中剩余0元,瓶子有1个,瓶盖有2个

版权声明:
作者:玉兰
链接:https://www.techfm.club/p/92187.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>