• 运动员喝饮料问题


    题目:

    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))
  • 相关阅读:
    TechRoad_oneStep_0410
    Tech road one step
    TechRoad--oneStep--0327
    TechRoad_oneStep 0313
    Tech road one step
    Tech road one step
    Tech road one step
    Tech road one step
    Tech road one step
    Tech road one step
  • 原文地址:https://www.cnblogs.com/alecc1124/p/11508246.html
Copyright © 2020-2023  润新知