问题: 某超市促销,举办空酒瓶和酒瓶盖换酒活动,规定 2 个空瓶或 4 个瓶盖可换一瓶酒。若小明最开始买了 n 瓶酒,则他总共能喝到多少瓶酒?
思路: 如果瓶子数大于2或盖子数大于4就可以换一瓶酒,而得到一瓶酒之后又可以得到新的瓶子和盖子,那么我们用while循环可以巧妙地解决这个问题:
n = int(input())
lid=n;bottle=n;wine=n #初始的瓶盖、瓶子、和酒的数量均为n
while lid>=4 or bottle>=2:
if lid>=4: #4个瓶盖换1瓶酒
lid-=4
else: #2个瓶子换1瓶酒
bottle-=2
lid+=1;bottle+=1;wine+=1 #得到一瓶酒后瓶子和瓶盖和酒的数量均加一
print(wine)