题解 | #汽水瓶#

汽水瓶

https://www.nowcoder.com/practice/fe298c55694f4ed39e256170ff2c205f

我的思路:
# 1、假设我有3个以上的空瓶,直接找老板换即可,空瓶数-2(-3+1),且喝汽水数+1,如此循环直到空瓶数小于3,优化一下可以减少循环次数,直接用整除3即可
# 2、假设我现在不到3瓶汽水了,若是2空瓶可以找老板赊一个空瓶,兑换完还一个空瓶;若是1空瓶则无法再兑换

lines = []
now_input = eval(input())
while now_input:
    lines.append(now_input)
    now_input = eval(input())


for empty_num in lines:
    has_drink = 0
    while empty_num >= 3:
        buy_num = empty_num // 3
        empty_num -= 2 * buy_num
        has_drink += buy_num
    if empty_num == 2:
        has_drink += 1
    elif empty_num < 2:
        pass
    else:
        # 程序不该走到这一步
        raise ValueError(f"{empty_num} : 大于2, 程序不该走到这一步")
    print(has_drink)

全部评论

相关推荐

牛客41406533...:回答他在课上学,一辈子待在学校的老教授用三十年前的祖传PPT一字一句的讲解,使用谭浩强红皮书作为教材在devc++里面敲出a+++++a的瞬间爆出114514个编译错误来学这样才显得专业
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务