题解 | #汽水瓶#
汽水瓶
https://www.nowcoder.com/practice/fe298c55694f4ed39e256170ff2c205f
def max_sodas(empty_bottles):
total_sodas = 0
while empty_bottles >= 3:
# 计算本轮汽水数量增加
sodas = empty_bottles // 3
total_sodas += sodas
# 更新最新的空水瓶:上一轮剩余的空瓶+刚刚喝完的空瓶
empty_bottles = empty_bottles % 3 + sodas
# 如果有两个剩余的空,再借一个空的
if empty_bottles == 2:
total_sodas += 1
return total_sodas
# 读取input中每一个element,到0停止
while True:
empty_bottle = int(input().strip())
if empty_bottle == 0:
break
print(max_sodas(empty_bottle))
看到有的解答是直接n//2的,有没有大佬讲下为啥这样可以啊。还是默认是借一个瓶子?


