浏览 2000 次
锁定老帖子 主题:2个空瓶换一瓶汽水问题
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-06-12
最后修改:2010-06-13
很简单、但是很容易出错的一个问题。事实上,关键是最后一步,你手中只剩下一个空瓶,这个瓶子你可以给老板,并且再向他索要一瓶汽水,喝完之后,将空瓶给他。 引用 这个本来不应该发到论坛中来(仅仅是自己参考用的)。只是不小心发错了,发上来了。希望大家不要见怪,只当是一个脑筋急转弯吧,活跃一下思维而已。程序员嘛,也不应该太较真,是不是。希望大家原谅我这次。
以下是这个问题的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) 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-06-13
最后修改:2010-06-13
引用 你手中只剩下一个空瓶,这个瓶子你可以给老板,并且再向他索要一瓶汽水,喝完之后,将空瓶给他。
这个是不符合严格逻辑的,如果事情可以这样,你永远可以买一块钱的汽水再加向老板索要一瓶然后还他两个空瓶。 等价于一块钱买两瓶汽水。 这个还需要复杂的算法么? |
|
返回顶楼 | |
发表时间:2010-06-13
老板为什么要借你一个空瓶??? 这种脑筋急转弯的东西,不是能用逻辑的程序算出来的
|
|
返回顶楼 | |
发表时间:2010-06-13
Illum 写道 引用 你手中只剩下一个空瓶,这个瓶子你可以给老板,并且再向他索要一瓶汽水,喝完之后,将空瓶给他。
这个是不符合严格逻辑的,如果事情可以这样,你永远可以买一块钱的汽水再加向老板索要一瓶然后还他两个空瓶。 等价于一块钱买两瓶汽水。 这个还需要复杂的算法么? 不错,也是,只是理论上有这样的可能性,实际中绝对办不到。如果仅从数学的角度看的话,一个空瓶的价值和一瓶水(不包括瓶)本身的价值是一样的。 |
|
返回顶楼 | |
发表时间:2010-06-13
这个本来不应该发到论坛中来(仅仅是自己参考用的)。只是不小心发错了,发到论坛上来了。希望大家不要见怪,只当是一个脑经急转弯吧,活跃一下思维而已。我觉得程序员嘛,也不应该太较真,是不是。希望大家原谅我这次。
|
|
返回顶楼 | |