二进制智力题

1、现有1000个苹果,10个盒子,现在要你将1000个苹果装入10个盒子中,使得用户无论购买多少个苹果(1-1000),都能由若干个盒子拼装而成(卖的时候是整个盒子卖,不能拆盒子的包装)

解法:考虑1, 2, 4, 8这四个数,由这四个数可以组成1-15之间任意一个数,也即1,2, 4 ... 2n 可以组成1-2(n+1)-1之间所有的数。所以这十个盒子分别放入

1, 2, 4, 8, 16, 32, 64, 128, 256, 489个苹果,即可组成1-1000内所有的数。

 

2. 有1000瓶液体,无色无味,外表完全一样,其中一瓶是毒药,有10条警犬,警犬喝过毒药后两小时后死亡。问,如何在两个小时后确定哪瓶是毒药。

也是二进制方法,1000瓶毒药编号0-999,10条警犬编号0-9,现在看每瓶液体编号的二进制表示,假设第i(从0开始)位是1,那么让第i条狗喝这瓶液体。比如第0瓶液体,没有警犬喝,第5瓶液体分别由第0条和第2条警犬喝,将1000液体全部分配给警犬喝下。待两个小时后,查看所有死亡的警犬,将它们的编号组成二进制数,那么这个二进制数对应的十进制数即是液体的编号


想起前几天笔试腾讯一道附加题:钻石商人带一个天平和四个砝码去购买钻石,钻石重量小于41克(不包括41),问带哪四个砝码?

砝码可以有三种情况:1、在称重时使用,并且和钻石在天平同一端。2、在称重时使用,和钻石不在天平同一端。3、称重时不使用。

这样考虑,分为:带1、3、9、27

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值