题目:
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 buywhile True: a=int(input('>>>')) print(f(a))