题解 | #汽水瓶#
汽水瓶
http://www.nowcoder.com/practice/fe298c55694f4ed39e256170ff2c205f
利用递推的方法进行解决。
为空汽水瓶个数。
第一次换完的空汽水瓶
第二次还完的空气水瓶
...
第 k 次换完后的空汽水瓶
如果 ,则还可以再喝一瓶,于是最多喝 瓶。
如果 , 则不能再喝一瓶,于是最多喝 瓶。
于是求解代码为
def get_max_num(n):
a = [n]
while True:
a.append(a[-1] // 3 + a[-1] % 3)
if a[-1] <=2:
break
#print(a)
s = 0
for x in a[:-1]:
s += x // 3
s += (a[-1] + 1) // 3
print(s)
while True:
a = int(input())
if a == 0:
break
get_max_num(a)