Python 每日一题(能喝多少瓶啤酒)
Python 每日一题:锻炼Python语法的运用,思维逻辑的锻炼,算法能力的培养。题目:啤酒2元一瓶,2个空瓶可以换一瓶啤酒,4个瓶盖可以换一瓶啤酒,现在给10元钱,在此规则下:总共能喝多少瓶啤酒?分析:定义3个变量beers、caps、bottles 分别表示啤酒数、瓶盖数、空瓶数,循环进行判断:(1)只要 beers > 0 表示还未结束,喝完啤酒可得到:beers 个瓶盖和空瓶,加到
·
Python 每日一题:锻炼Python语法的运用,思维逻辑的锻炼,算法能力的培养。
题目:
啤酒2元一瓶,2个空瓶可以换一瓶啤酒,4个瓶盖可以换一瓶啤酒,现在给10元钱,在此规则下:总共能喝多少瓶啤酒?
分析:
定义3个变量beers、caps、bottles 分别表示啤酒数、瓶盖数、空瓶数,循环进行判断:
(1)只要 beers > 0 表示还未结束,喝完啤酒可得到:beers 个瓶盖和空瓶,加到原来的 caps、bottles变量中;
(2)如果 bottles >= 2 则可以换取 bottles // 2 瓶啤酒,余下 bottles % 2 个酒瓶;
(3)如果 caps >= 4 则可以换取 caps // 4 瓶啤酒,余下 caps % 4 个瓶盖;
(4)当啤酒喝完,余下的瓶盖和酒瓶换不出更多的啤酒,程序结束。
程序实现:
def sum_beers():
money = 10 # 钱数
beers = money // 2 # 啤酒数
caps = 0 # 瓶盖数
bottles = 0 # 空瓶数
count = 0 # 喝啤酒总数
while beers > 0:
caps += beers
bottles += beers
count += beers
print(f"本次喝了 {beers} 瓶啤酒,共计喝了 {count} 瓶啤酒")
beers = 0
print(f"本次剩余:{beers} 瓶啤酒,{caps} 个瓶盖,{bottles}个空瓶")
if caps >= 4: # 4个瓶盖可以换一瓶啤酒
print(f"{caps - caps % 4} 个瓶盖换取 {caps // 4} 瓶啤酒")
beers = beers + caps // 4
caps = caps % 4
if bottles >= 2: # 2个空瓶可以换一瓶啤酒
print(f"{bottles - bottles % 2} 个空瓶换取 {bottles // 2} 瓶啤酒")
beers = beers + bottles // 2
bottles = bottles % 2
print(f"换取 {beers} 瓶啤酒,剩余 {caps} 个瓶盖,{bottles} 个空瓶")
print('-' * 50)
print(f"总共喝了{count} 瓶啤酒,剩余 {caps} 个瓶盖,{bottles}个空瓶")
sum_beers()
实现结果:
本次喝了 5 瓶啤酒,共计喝了 5 瓶啤酒
本次剩余:0 瓶啤酒,5 个瓶盖,5个空瓶
4 个瓶盖换取 1 瓶啤酒
4 个空瓶换取 2 瓶啤酒
换取 3 瓶啤酒,剩余 1 个瓶盖,1 个空瓶
--------------------------------------------------
本次喝了 3 瓶啤酒,共计喝了 8 瓶啤酒
本次剩余:0 瓶啤酒,4 个瓶盖,4个空瓶
4 个瓶盖换取 1 瓶啤酒
4 个空瓶换取 2 瓶啤酒
换取 3 瓶啤酒,剩余 0 个瓶盖,0 个空瓶
--------------------------------------------------
本次喝了 3 瓶啤酒,共计喝了 11 瓶啤酒
本次剩余:0 瓶啤酒,3 个瓶盖,3个空瓶
2 个空瓶换取 1 瓶啤酒
换取 1 瓶啤酒,剩余 3 个瓶盖,1 个空瓶
--------------------------------------------------
本次喝了 1 瓶啤酒,共计喝了 12 瓶啤酒
本次剩余:0 瓶啤酒,4 个瓶盖,2个空瓶
4 个瓶盖换取 1 瓶啤酒
2 个空瓶换取 1 瓶啤酒
换取 2 瓶啤酒,剩余 0 个瓶盖,0 个空瓶
--------------------------------------------------
本次喝了 2 瓶啤酒,共计喝了 14 瓶啤酒
本次剩余:0 瓶啤酒,2 个瓶盖,2个空瓶
2 个空瓶换取 1 瓶啤酒
换取 1 瓶啤酒,剩余 2 个瓶盖,0 个空瓶
--------------------------------------------------
本次喝了 1 瓶啤酒,共计喝了 15 瓶啤酒
本次剩余:0 瓶啤酒,3 个瓶盖,1个空瓶
换取 0 瓶啤酒,剩余 3 个瓶盖,1 个空瓶
--------------------------------------------------
总共喝了15 瓶啤酒,剩余 3 个瓶盖,1个空瓶
【结语】以上整个程序的实现逻辑,还存在很多不全面的地方,欢迎各位大佬指点;如果觉得笔者不易,请给予点赞,给予我记录更多文章的动力!!
更多推荐
所有评论(0)