`
googya
  • 浏览: 143367 次
  • 性别: Icon_minigender_1
  • 来自: 汉川
社区版块
存档分类
最新评论

2个空瓶换一瓶汽水问题

 
阅读更多
        1块钱可以买一瓶汽水,两个瓶可以换1瓶汽水,那么20可以喝到多少瓶汽水?
很简单、但是很容易出错的一个问题。事实上,关键是最后一步,你手中只剩下一个空瓶,这个瓶子你可以给老板,并且再向他索要一瓶汽水,喝完之后,将空瓶给他。


引用
这个本来不应该发到论坛中来(仅仅是自己参考用的)。只是不小心发错了,发上来了。希望大家不要见怪,只当是一个脑筋急转弯吧,活跃一下思维而已。程序员嘛,也不应该太较真,是不是。希望大家原谅我这次。          




         以下是这个问题的Ruby实现:
def sum_bottles(money)
    sum=left_bottle=money
    single_one=0#单瓶子的个数
    while(left_bottle!=1)
        if(left_bottle%2!=0)
            single_one=1
            left_bottle=(left_bottle-1)/2
            sum+=left_bottle
        else
            single_one=0
            left_bottle=left_bottle/2
            sum+=left_bottle
        end
        left_bottle+=single_one
    end
    sum+1#注意要加上这个,最后还可以得到一瓶
end
money=30
p sum_bottles(money)




下面是个简化版本:
def sum_bottles(money)
    sum=left_bottle=money
    single_one=0
    while(left_bottle!=1)
        left_bottle%2!=0?single_one=1:single_one=0
        left_bottle=(left_bottle-single_one)/2
        sum+=left_bottle
        left_bottle+=single_one
    end
    sum+1
end
money=120
p sum_bottles(money)

分享到:
评论
4 楼 googya 2010-06-13  
    这个本来不应该发到论坛中来(仅仅是自己参考用的)。只是不小心发错了,发到论坛上来了。希望大家不要见怪,只当是一个脑经急转弯吧,活跃一下思维而已。我觉得程序员嘛,也不应该太较真,是不是。希望大家原谅我这次。           
3 楼 googya 2010-06-13  
Illum 写道
引用
你手中只剩下一个空瓶,这个瓶子你可以给老板,并且再向他索要一瓶汽水,喝完之后,将空瓶给他。


这个是不符合严格逻辑的,如果事情可以这样,你永远可以买一块钱的汽水再加向老板索要一瓶然后还他两个空瓶。
等价于一块钱买两瓶汽水。
这个还需要复杂的算法么?

不错,也是,只是理论上有这样的可能性,实际中绝对办不到。如果仅从数学的角度看的话,一个空瓶的价值和一瓶水(不包括瓶)本身的价值是一样的。
2 楼 ray_linn 2010-06-13  
老板为什么要借你一个空瓶??? 这种脑筋急转弯的东西,不是能用逻辑的程序算出来的
1 楼 Illum 2010-06-13  
引用
你手中只剩下一个空瓶,这个瓶子你可以给老板,并且再向他索要一瓶汽水,喝完之后,将空瓶给他。


这个是不符合严格逻辑的,如果事情可以这样,你永远可以买一块钱的汽水再加向老板索要一瓶然后还他两个空瓶。
等价于一块钱买两瓶汽水。
这个还需要复杂的算法么?

相关推荐

    C语言 递归实现 函数 一元钱买一瓶啤酒,两个空瓶换一瓶啤酒.问n元钱能喝多少瓶啤酒?

    喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水。编程实现。要求: (1) 用递归的方法计算能喝到的啤酒数目。 (2) 函数的原型为 int getNum(int n); (3) 不能定义全局变量。

    在线编程-汽水瓶

    有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一...

    C++计算n元钱可以喝多少瓶啤酒原理及实现

    本问题主要探讨了如何利用C++编程语言来解决一个具体的数学问题:假设每瓶啤酒的价格为2元,用户可以用2个空瓶或者4个瓶盖换取一瓶新的啤酒。基于这些条件,我们需要设计一个算法来计算出给定金额时,用户最多能喝到...

    c程序问题:1元一瓶汽水,两个空瓶可以换一瓶,问20元可以喝多少瓶

    c程序问题:1元一瓶汽水,两个空瓶可以换一瓶,问20元可以喝多少瓶

    1元一瓶汽水,两个空瓶可以换一瓶,问20元可以喝多少瓶.exe

    1元一瓶汽水,两个空瓶可以换一瓶,问20元可以喝多少瓶.exe

    小学数学数学故事数学童话北游记5八戒喝汽水

    然后,悟空进一步提出向店家借一个空瓶,凑够三个空瓶再换一瓶汽水,喝完后再归还,这就需要孩子们理解借用和归还的概念,并进行逻辑推理。 通过这个故事,孩子们可以学习到以下数学知识点: 1. 货币计算:理解...

    移动面试逻辑题

    - **汽水瓶问题**:使用20元购买20瓶汽水,再用19个空瓶换9瓶汽水,剩下1个空瓶,然后用8个空瓶换4瓶汽水,剩下1个空瓶,接着用5个空瓶换2瓶汽水,再剩1个空瓶,最后用3个空瓶换1瓶汽水,剩下2个空瓶,再用这2个...

    学校数学趣味智力题_1.docx

    2. **第二步**:喝完这20瓶汽水后,获得20个空瓶,可以兑换10瓶汽水。 3. **第三步**:再次喝完这10瓶汽水后,获得10个空瓶,其中8个用来兑换4瓶汽水,剩余2个空瓶。 4. **第四步**:喝完这4瓶汽水后,获得4个空瓶...

    2008年暑假小学数学奥林匹克一年级练习卷(10)往年数学知识点.doc

    然后,这2瓶汽水的空瓶加上原有的2个空瓶(总共4个空瓶),又可以换1瓶汽水。所以,妈妈总共可以喝到6+2+1=9瓶汽水。 3. 把2、6、7、8、9和14分别填在下面的( )里(每个数只需用一次),使两个算式都成立。(1)...

    一年级数学课外拓展阅读.doc

    猴妈妈买了4瓶汽水,每两个空瓶可以换一瓶汽水。皮皮认为最多可以喝到7瓶,因为他理解为4瓶换2瓶,再用2瓶换1瓶。而聪聪则提出可以借1个空瓶,使得空瓶数量达到2个,再换一瓶,喝完后归还空瓶,总共能喝到8瓶。这个...

    湖南省第六届大学生计算机程序设计竞赛.pdf

    然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝? 知识点: *_python基础知识:变量、数据类型、运算符、控制结构等 *...

    经典的智力测试题及答案.doc

    13. 用20元买20瓶汽水,然后用19个空瓶换9瓶,剩下1个空瓶,再用8个空瓶换4瓶,剩下3个空瓶,再用3个空瓶换1瓶,剩下2个空瓶,借1个空瓶,换得1瓶,还掉借的空瓶,共喝了20+9+4+1+1=35瓶。 这些问题展现了逻辑思维...

    程序设计大赛题目解答.pdf

    题目中提到,3 个空瓶可以换 1 瓶汽水,20 个空瓶可以换 7 瓶汽水。解决这类问题通常需要构建一个状态转移方程,记录当前拥有的空瓶子数量,以及可以通过这些瓶子获得的新汽水。例如,初始时购买了 5 元的汽水(相当...

    逻辑推理面试题.docx

    再向店主借1个空瓶,凑齐4个换1瓶,喝完后归还店主那个借来的空瓶。总共能喝到20+10+5+1+1=37瓶汽水。 以上问题展示了逻辑推理和数学思维在解决实际问题中的应用,是面试中衡量应聘者解决问题能力和思考方式的有效...

    小学数学经典题集锦.docx

    **题目描述:**1元钱一瓶汽水,喝完后两个空瓶换一瓶汽水,问:你有20元钱,最多可以喝到几瓶汽水? **解析:**通过计算购买汽水和用空瓶换取汽水的过程,可以得出最大喝到的汽水数量。 1. 初始时,用20元购买20瓶...

    面试智力题最新大全(呕血整理)

    10. 汽水问题:20元可以买20瓶汽水,然后20个空瓶换10瓶,10个空瓶换5瓶,剩下5个空瓶,4个换1瓶,喝完再用1个空瓶换1瓶,喝完还给商家。所以总共可以喝40瓶。 11. 经理的女儿问题:经理的三个女儿对应三个数字,...

    四年级数学上册10道经典奥数题.docx

    5. 3个空瓶换一瓶汽水 这个问题涉及递归计算。开始时有10个空瓶,第一次可以换3瓶汽水,留下1个空瓶。 - 再次喝完后,有4个空瓶,可以换1瓶,剩下1个空瓶。 - 然后又有2个空瓶,再换1瓶,剩下2个空瓶。 - 接下来,把...

    小学数学100道智力题.doc

    6. 题目17:如果1元可以买一瓶汽水,2个空瓶可以换1瓶汽水,那么20元可以买20瓶,用18个空瓶换9瓶,再用8个空瓶换4瓶,剩下的2个空瓶不足以再换一瓶,总共能喝到\(20 + 9 + 4 = 33\)瓶。 7. 题目18:这是一个数列...

    八年级数学趣味题.docx

    - **题目**:1元钱一瓶汽水,喝完后两个空瓶子换1瓶汽水,问:你有20元钱最多可以喝到多少瓶汽水? - **解析**:这是一道综合应用题。首先用20元买20瓶汽水,然后用20个空瓶子换10瓶汽水,此时共有30个空瓶子,再用...

Global site tag (gtag.js) - Google Analytics