有趣的智力题思路

某零件加工厂按照工人完成的合格零件和不合格零件数支付工资,工人每做出一个合格零件能得到工资10元,每做出一个不合格的零件将被扣掉5元,已知某人一天共做了12个零件,得到工资90元,那么他在这一天作了多少个不合格零件?

一个零件,合格和不合格价值差距15,

而2件全合格价值120,

120 - 90 = 30,故 30 / 15 = 2 为不合格数目


n从1开始,每个操作可以选择对n加1或者对n加倍。若想获得整数2013,最少需要多少个操作?

解法一:
二进制编码位运算:

乘2代表左移一位,加1是最低位加1,例如:

由1到15,15的二进制1110,1110 <- 111 <- 110 <- 11 <- 10 <- 1,需要5次操作

分析可知,转换为二进制数后,除了最高位1之外,其余位如果是1,则必然是经过两次操作所得(先加倍,后加1),其余位是0则通过一次操作可得,

则设给定数A的二进制中有a个1,b个0,则需要操作的次数为(a-1)*2+b,

2013 =11111011101,所以a=9,b=2

故 (9-1)*2+2=18次操作

解法二:
直接逆推:

奇数减1,偶数除2。

2013,2012,1006,503,502,251,250,125,124,62,31,30,15,14,7,6,3,2,1

故一共有18步。


1元钱一瓶汽水,喝完后两个空瓶换一瓶汽水,问:你有20元钱,最多可以喝到几瓶汽水?(可以借)

思路一:
抓住汽水的价格。

汽水的价格分为两部分,一部分是汽水溶液的价格,一部分是瓶子的价格。
一块钱买一瓶汽水,得到一瓶汽水溶液和一个空瓶,而空瓶=半瓶汽水=0.5元。也就说一瓶汽水溶液的价格是0.5元。

故20除以0.5=40

思路二:
分析极端情况。

先借20元,喝40瓶。之后把40个空瓶换成的20瓶还回去

思路三:
分析最简单情况。

1块钱1瓶汽水,喝完有一个空瓶。先借一瓶来喝,喝完再得到一个空瓶。两个空瓶换一个还回去。所以1块钱最多可以喝两瓶。

那么20元可以喝:20*2=40瓶。


一个猴子身带100个香蕉,他距离家50米。这个猴子要带香蕉回去,但是他一次最多只能背50个香蕉,而且,每走一米他就要吃掉一个香蕉(往回走也要吃香蕉)。这个猴子最后最多可以带多少个香蕉到家?

问题化简为:猴子带50个香蕉走到x米处原路返回取走剩下50香蕉走到终点,问x取何值终点香蕉最多。

思路一:
带50个走x米,放下(50-2x)香蕉在原地,携带x香蕉返回原点,x香蕉正好在路上被消耗。再带50香蕉走x米至刚才放香蕉的地方。此时剩有(100-3x)香蕉。

接下来能够携带的香蕉数为50与(100-3x)中的小者,两种情况走剩下的(50-x)米到达终点,香蕉分别还剩x个以及(50-2x)个。

故当50 < (100-3x) 时,取x最大值即剩余16个香蕉。

思路二:
关注猴子什么时候吃满了50个香蕉,然后可以将剩下的香蕉一次带回去。

分两段路程,一段往返路程,一段剩余路程。

计算往返路程时,猴子每走一米(实际走了3米,向前走一次再回来一次再向前走一次),消耗3个香蕉;

则3*x >= 50,取x的最小值17;
当走了17米时消耗了51个香蕉还剩49个可以一次拿走。

故50-17=33;还剩33米。
49-33=16;消耗33个,剩余16个香蕉。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值