题解 | #汽水瓶#
汽水瓶
https://www.nowcoder.com/practice/fe298c55694f4ed39e256170ff2c205f
思路1:递归
def myfun(s): count = s // 3 if s//3+s%3 ==2: # 递归结束条件 count += 1 elif s//3+s%3 == 1: # 递归结束条件 count += 0 else: count += myfun(s//3+s%3) # 递归 return count while True: s = eval(input()) if s == 0: break else: count = myfun(s) print(count)
思路2:找规律
# 思路 分析设现有n个空瓶,则最多可兑换n//2瓶 # n=0 结束 # n=1 借2 兑1 不够还----》兑0 # n=2 借1 兑1 够还----》兑1 # n=3 借0 兑1 够还----》兑1 借1,2,还是兑1 借3兑2不够还 # n=4 借2 兑2 够还----》兑2 # n=5 借2 兑2 不够还----》兑2 while True: try: n=int(input()) if n==0: break else: print(n//2) except: break