V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
chuhemiao
V2EX  ›  问与答

每瓶啤酒 2 元, 2 个空酒瓶或 4 个瓶盖可换 1 瓶啤酒。10 元最多可喝多少瓶啤酒?

  •  
  •   chuhemiao · 2016-02-24 12:59:41 +08:00 · 19748 次点击
    这是一个创建于 3231 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,答案到底是 15 还是 20 !!

    21 条回复    2016-02-24 16:37:23 +08:00
    kyrre
        1
    kyrre  
       2016-02-24 13:08:39 +08:00
    20 。
    算下来一瓶啤酒除掉酒瓶和瓶盖,酒水 5 毛,所以一共可以喝到 20 瓶。
    873681136
        2
    873681136  
       2016-02-24 13:08:57 +08:00 via iPhone
    一瓶啤酒(啤酒+1 空酒瓶+1 瓶盖)=2 元
    2 空酒瓶=4 瓶盖=一瓶啤酒(啤酒+1 空酒瓶+1 瓶盖)
    可以得出:啤酒(纯液体)=0.5 元
    于是你 10 块钱可以喝 20 瓶啤酒,前提是店家愿意借你酒瓶或瓶盖
    mmcer
        3
    mmcer  
       2016-02-24 13:12:06 +08:00
    共 15 瓶。 10 元:5 瓶 5 个瓶盖 5 个空瓶换:3 瓶喝完后,剩 4 个瓶盖 4 个空瓶换:3 瓶喝完后,剩 3 个瓶盖, 3 个空瓶换:1 瓶,剩 4 个瓶盖, 2 个空瓶:2 瓶喝完剩 2 个瓶盖, 2 个空瓶,换:1 瓶共 15 瓶。
    Tink
        4
    Tink  
       2016-02-24 13:12:07 +08:00 via iPhone
    我算的 15
    pright
        5
    pright  
       2016-02-24 13:12:37 +08:00
    取决于能不能借空瓶或者借瓶盖,不能借应该是 15
    Tink
        6
    Tink  
       2016-02-24 13:13:57 +08:00 via iPhone
    前提是不能赊
    xiaoyu9527
        7
    xiaoyu9527  
       2016-02-24 13:15:58 +08:00
    5+2+2+1+2+1+2+
    不算了额
    chuhemiao
        8
    chuhemiao  
    OP
       2016-02-24 13:16:02 +08:00
    @kyrre @873681136 好像按题意是不能赊账的把,但是也没说
    @mmcer @Tink
    Lucius
        9
    Lucius  
       2016-02-24 13:25:35 +08:00
    @chuhemiao 其实是看你能喝多少,即使店家愿意借你酒瓶或瓶盖。你也喝不掉 20 瓶啊。我最多一口气喝 2 瓶
    tidezyc
        10
    tidezyc  
       2016-02-24 13:43:10 +08:00
    然道不应该是 17 瓶吗?
    chuhemiao
        11
    chuhemiao  
    OP
       2016-02-24 14:03:42 +08:00
    @tidezyc QAQ
    xmbaozi
        12
    xmbaozi  
       2016-02-24 14:04:20 +08:00
    我算法也跟 1 楼 一样
    eu
        13
    eu  
       2016-02-24 14:06:04 +08:00
    4 瓶 第五瓶就喝不下去了 啤酒喝那么多干嘛!
    Yvette
        14
    Yvette  
       2016-02-24 14:17:31 +08:00 via iPhone
    我的算法也跟楼上一样
    pupboss
        15
    pupboss  
       2016-02-24 14:21:49 +08:00
    money = 10
    price = 2
    total = 0
    cap = 0
    bottle = 0

    while money - price >= 0:
    money = money - price
    total = total + 1
    cap = cap + 1
    bottle = bottle + 1
    if cap == 4:
    money = money + price
    cap = 0
    if bottle == 2:
    money = money + price
    bottle = 0

    print(total)
    print(money)
    print(bottle)
    print(cap)


    15
    0
    1
    3
    [Finished in 0.1s]
    cnkuner
        16
    cnkuner  
       2016-02-24 14:23:29 +08:00 via Android
    20
    xjx0524
        17
    xjx0524  
       2016-02-24 14:31:28 +08:00
    @kyrre
    @873681136
    算 20 的各位你们把瓶盖和酒瓶当成同种类不同价值的代币了,所以可能会出现 1 酒瓶加 2 瓶盖换一瓶酒,或者借 1 酒瓶还 2 瓶盖的情况,但是题目应该是不允许的
    JanDai
        18
    JanDai  
       2016-02-24 14:45:43 +08:00
    20 瓶,一次喝这么多酒肯定是先喝完再结账,谁会一买一瓶喝一瓶的。
    kyrre
        19
    kyrre  
       2016-02-24 14:46:50 +08:00
    @xjx0524 只要没说不行就假设可以的。只要借了还就没问题。
    wavingclear
        20
    wavingclear  
       2016-02-24 16:25:24 +08:00
    允许借就是 20 瓶
    把酒、空瓶、瓶盖分别记作 A 、 B 、 C ,未拆封的啤酒就是( A+B+C )
    2 个空酒瓶换一瓶酒表示为 2B => A+B+C , 允许借的大前提
    B => A +C , 同理 3C => A + B
    3C => A + B => 2A + C ,
    2C => 2A ,即 C=>A , B=>2A
    因为酒瓶正好可以换两个瓶盖,所以不会出现 17 楼所说的情况
    5( A+B+C) => 20A
    wavingclear
        21
    wavingclear  
       2016-02-24 16:37:23 +08:00
    改正: 2C => 2A 约分去掉 2 是不对的
    应该是 B + C => A + C + C => 3A ,
    A + B + C => 4A
    每两块钱,借 2 个瓶子 2 个瓶盖可以喝 4 瓶酒。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2649 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 15:09 · PVG 23:09 · LAX 07:09 · JFK 10:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.