题目:
27个小运动员在参加完比赛后,口渴难耐,去小店买饮料,饮料店搞促销,凭三个空瓶可以再换一瓶,他们最少买多少瓶饮料才能保证一人一瓶?要求: 尝试优化算法,代码行数越少越好
def f(a):
for i in range(a+1):
all_=0 #能得到的总数
new=0 #空瓶子的数量
b=i #传值参数
n=i #传值参数
while int(n/3)!=0:
new=int(n%3+n/3)
all_=int(all_+i+new-n%3)
n=new
i=0
if new==2: #如果剩下的空瓶子数为2则可以借一瓶然后3换1
all_+=1
if all_>=a or (a<4 and a==b):
return b
# buy=0
# all=0
# while all<27:
# buy+=1
# all+=1
# if all%3==0:
# all+=1
# if all%3==1:
# buy-=1
# return buy
while True:
a=int(input('>>>'))
print(f(a))