题解 | #汽水瓶#
汽水瓶
http://www.nowcoder.com/practice/fe298c55694f4ed39e256170ff2c205f
核心就是确定:每轮兑到的汽水喝完之后的空瓶子的总数,包括兑到的汽水数和剩余的空瓶子数。例如:最开始10个空瓶子,第一轮可以兑3瓶,喝完之后有3+1=4个空瓶子;第二轮可以兑1瓶,喝完之后剩下1+1=2个瓶子。 确定好这个,就可以确定每轮能兑几瓶。
while True:
try:
a=int(input())
if(a!=0):
b=int(a/3)
c=a-b*3+b
f=c
h=b
# 算出空瓶子小于3时喝的瓶数累计:
while (int(f / 3) >= 1):
h = h + int(f / 3)
f = f - int(f / 3) * 3 + int(f / 3)
#判断最后剩余空瓶子时的策略
if(f==2):
h=h+1
elif(f==1):
h=h
print(h)
except:
break