笔试智力题(收集中)【for_wind】

来源:互联网 发布:前端性能优化的方式 编辑:程序博客网 时间:2024/06/06 00:01

收集中,挺有意思的。以下把思考过的有意思的记下来。//for_wind

1、用容积分别为15升和27升的两个杯子向一个水桶中装水,可以精确向水桶中注入()升水?

A、53  B、25  C、33  D、52

分析:利用公约数。这里A=15,B=27,公约数C=3,为此必须选择是3的倍数的答案。只有一个选项C。对于答案C可以按如下做到:15+15-27+15+15

答案:C

2、病狗问题 

  一个住宅区内有100户人家,每户人家养一条狗,每天傍晚大家都在同一个地方遛狗。已知这些狗中有一部分病狗,由于某种原因,狗的主人无法判断自己的狗是否是病狗,却能够分辨其他的狗是否有病,现在,上级传来通知,要求住户处决这些病狗,并且不允许指认他人的狗是病狗(就是只能判断自己的),过了7天之后,所有的病狗都被处决了,问,一共有几只病狗?为什么?
分析:注意到“上级传来通知,要求住户处决这些病狗”,说明一定存在至少一只病狗。

我们知道根据通知第一天肯定存在病狗。假如只有1只病狗,第一天傍晚遛狗的时候,病狗的主人会发现别人的狗都是正常的,开始察觉是自己的狗有问题,于是第一天当晚就把自己的狗给处决了。而于此同时,正常狗的主人,发现有1只病狗,心里想:等病狗主人发现处决掉这1只病狗,第一天还没有足够的理由怀疑自己的狗,当即决定第二天再看。所以有1只病狗的话,会在第1天被处决。正常狗的主人觉得等到第二天再看是明智的。

假如有2只病狗,那么第一天傍晚遛狗的时候,正常狗的主人发现有2只病狗,病狗的主人则会发现有1只病狗。病狗的主人发现有1只病狗,心里想:等病狗主人发现处决掉这1只病狗,第一天还没有足够的理由怀疑自己的狗,当即决定第二天再看。正常狗的主人心里想,第一天看到别人有2只病狗,这两个病狗的主人在第一天都看到1只病狗,都要到第二天才意识到自己的狗有问题。所以如果第三天还看到2只病狗则自己狗才有问题。于是所有人都没有处决自己的狗。第二天遛狗时间到了,病狗主人发现那1只病狗还在,于是意识到那1只病狗的主人肯定也看到了1只病狗,而别人的狗都是正常的,那1只病狗的主人看到的狗正是自己的病狗,所以推出自己的狗有问题。2只病狗当晚被主人处决了。所以有2只病狗的话,会在第2天被处决。正常狗的主人觉得等到第三天再看是明智的。

可以推测:有N只病狗的话,会在第N天被处决。下面证明

1)若只有1只病狗,因为病狗主人看不到有其他病狗,必然会知道自己的狗是病狗(前提是一定存在病狗),所以他会在第一天把病狗处决。 
  2)设有k只病狗的话,会在第k天被处决,那么,如果有k+1只,病狗的主人只会看到k只病狗,而第k天没有人处决病狗,病狗主人就会在第k+1天知道自己的狗是病狗,于是病狗在第k+1天被处决。
  3)由1)2)得,若有n只病狗,必然在第n天被处决。

答案:7

3.某个数除以2 余1 ,除以3 余 1,除以4 余 1,除以5余 1,除以6 余 1,除以7 余 1,除以8 余 1,除以9 余 1,除以10 余1,除以11余0,求这个数最小为多少?

分析:

乍一看需要的条件有:2*x2+1 = 3*x3+1 = 4*x4 =   ...  = 10*x10+1  =  11*k。其中x2、x4...x10和k是对应变量。

(1)如何化简?

前面的几个条件(2*x2+1、3*x3+1...10*x10)可以合并为一个:(2、3、4、5、6、7、8、9、10的最小公倍数)*i+1。

(2)如何求最小公倍数?

2、3、4、5、6、7、8、9、10的最小公倍数=2*2*2*3*3*5*7=2520。(找出各个公倍数)

因此,考虑2520*i+1=11*k,找到这个i。

(3)那么如何快速找出 i 呢?

考虑一下,左边必定是11的倍数,先做如下计算:2520=11*229+1

那么式子可以变成:2520*i+1=(11*229+1)*i+1=11*k

上式中的11*229*i 肯定可以被11整除,

剩下的就是1*i+1 =  11*m,其中m为(k-229*i)。因此,可取i=10。

所以2520*10+1=25201

答案:25201

4、有1000盏灯,初始状态全灭;1000个开关,第一个开关改变所有1和1的倍数的灯的状态,第二个开关改变所有2和2的倍数的灯的状态……直到第1000个开关。当1000个开关都执行一遍之后,哪些灯亮着?

分析:

条件有:

(1)第n个开关改变所有n和n的倍数的灯的状态,(N取1、2、和1000)

(2)初始状态全灭

(3)根据(2)和常识,开关控制灯泡两次(2的倍数)则该灯泡为灭

第 k 盏灯 开关控制它的次数

       1                 1

       2              1、2

       3              1、3

       4              1、2、4

分析可知,第k盏灯,开关控制它的次数:是k 的所有约数个数。

又根据(3)中,约数的个数为2的倍数则灭,题意转化为:考虑1000之内所有的完全平方数。

因为31*31=961,32*32=1024,所以一共有31盏灯开关控制它的次数是2的倍数。

答案:除了1,2^2,3^2 ...k^2,31^2位置的31盏灯为灭,其他地方的灯都是亮着的。

5、10个圆最多可以把平面分成多少部分?

分析:(来自参考资料2)
设n个圆最多可以把平面分成S(n)个部分。
则可得:
S(1)=2;
S(2)=4;
...
前n-1个圆最多将平面分成S(n-1)个部分,此时,对于第n个圆来说,它与先前的n-1个圆最多有2(n-1)个交点,即此第n个圆最多被这2(n-1)个交点分成2(n-1)条圆弧段。由于每增加一个圆弧段,便可将原来的某个区域分为两个区域(此处最好看图分析)。因此,第n个圆使平面增加了2(n-1)个区域。因此可得递推关系式:
S(n)=S(n-1)+2(n-1), 其中n大于等于2。
由此递推关系式得到:
S(n)=S(1)+2*1+2*2+...+2*(n-1)=2+n*(n-1)=n^2-n+2;
即n个圆最多可以把平面分成(n^2-n+2)个部分。

答案:92

6、1*2*3....*100得到的数有几个0?

分析:

如何得到0,既如何计算10?

(1)10=1*10

(2)10==2*5

由(1):10,20,30,40,50,60,70,80,90,100。共10+1=11个0(100两个0)

由(2):5,15,25,35,45,50,55,65,75,85,95。共11个数,一共有11+2个5(25和75有两个5)[注\:只需考虑5,因为(2的倍数比5的倍数多)

因此11+13=24

以上这样分析需要特别注意到(2)中50。以下解法来自网友:

[解法一]:
[100/5]+[100/5^2]+[100/5^3]+……=24
所以1*2*3*......*100的积中末尾有24个连续的0
其中[x]读作高斯x,表示不大于x的最大整数。 
如[1.2]=1   [5]=5   [-1.5]=-2 
要求x!末尾有多少个连续的0,公式是 [x/5]+[x/5^2]+[x/5^3]+[x/5^4]+[x/5^5]+……
[解法二]:
将原式分解质因数,也就是说将它写成完全由质因数乘积的形式,如果要形成0(或者10)则要看这个质因数乘积的式子中2和5的对数,因为一对形成一个零嘛。可以很直观的看出来2的个数是明显多于5的,所以只要看5的个数就行了,式子中能分解出5的数有:
5、10、15、20、25、30、35、40、45、50、55、60、65、70、75、80、85、90、95、100
而通过分解质因数对应得到5的个数分别是:
1、 1 、 1 、 1 、 2 、 1 、 1 、 1 、 1 、 2 、 1 、 1 、 1 、 1 、 2 、 1 、 1 、 1 、 1 、 2
总共有24个,所以总共会形成24个0

答案:24


7、五个海盗分宝石

五个海盗抢到100颗宝石,每一颗都一样大小和价值连城。他们决定这么分:
(1)抽签决定自己的号码(1、2、3、4、5)
(2)首先,由1号提出分配方案,然后大家表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔进大海喂鲨鱼
    如果1号死后,再由2号提出分配方案,然后剩下的4人进行表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔入大海喂鲨鱼依此类推
条件:每个海盗都是很聪明的人,都能很理智地做出判断,从而做出选择。
问题:第一个海盗提出怎样的分配方案才能使自己的收益最大?

分析:

要使自己的收益最大的前提是自己不死,1号必须将100颗宝石中的一部分分给其他的海盗,已获得超过半数同意。下面考虑哪些海盗会同意。

先考虑5号海盗,如果轮到5号分配,可以独占100颗宝石,使5号自己的利益最大,所以一当轮到4号分配时,5号肯定投反对票。即使4号提出自己要0,而把100颗钻石都给5,5也不会答应――因为5号愿意看到4号死掉。

考虑4号海盗,基于以上考虑,4号肯定不会期望自己分配方案,因此4号海盗必须同意1、2或3号的合理分配方案,并尽量让自己收益较多。

考虑3号海盗,基于以上考虑,等轮到3号海盗分配时,其最佳分配方案:100,0,0。因为4号为了让自己不死,会投同意。显然对于4、5号,轮到3号海盗分配,自己收益很差,均为0。

考虑2号海盗,基于以上考虑,等轮到2号海盗分配时,其最佳分配方案:98,0,1,1。对于4、5号,轮到2号海盗分配,自己收益变好,均为1,投同意票数。

考虑1号海盗,基于以上考虑,等轮到1号海盗分配时,其分配方案可以为:97,0,0,2,2。对于4、5号,轮到3号海盗分配,自己收益变好,均为2,投同意票。但是是否可以分配别人更少呢?考虑2号,不管1号分配给2号多少,2号肯定投反对票,因为只有轮到2号时2号才能获得最大利益。那么考虑3号,若是轮到2号分配,其收益为0,要是1号这时分配它1个,它就会满意。因此,聪明的1号决定分配3号1个,而分配4号或5号2个,这样投票过半,1号收益为97。

另外,注意到这一点:N号总是会反对N+1号提出的分配方案,因为N+1号死后,就轮到自己分配,收益最大。

答案:

1号分配,依次是:97,0,1,0,2; 或者是:97,0,1,2,0。

8、假钱与亏本问题:

一天,有位年轻人来到张老板店花80元买了件原价160元的纪念品。这件礼物成本65元。结账时,年轻人掏出100元,张老板当时没有零钱,就用那100元向隔壁店家换了零钱,找给年轻人20.但是隔壁店家后来发现那100是假钱,张老板无奈还了100元。那么张老板在这次交易中损失了多少钱——
A、65 B、85  C、100 D、185
分析:

以年轻人的角度想,给了一张假钱,价值为0,得到了65元的衣服,和找回的20元,总共获利85元;

以隔壁店家角度想,自己虽然得到一张假钱,但是后来张老板又补回来了,不进不出;

以张老板的角度想,衣服给出去了,又把零钱找给别人了,共亏了85.

答案:

B

9、年龄问题

一天,A 君和 B 君一起在路上走着,遇见 B 君的 三个熟人 X、Y、Z。

A 君问起 B 君:“他们三个人今年多大?”
B 君想了想说:“那我就考考你吧:他们三人的年龄之和为我们两人年龄之和,他
们三人年龄相乘等于2450。”
A 君算了算说:“我还是不知道!”。
B 君听后笑了笑说:“喔!那我再给你一个条件--他们三人的年龄都比我们的朋
友 C 君要小。”
A 君听后说:“喔,那我知道了。”
最后问 C 君的年龄是多少?

分析:

条件有:(1)X+Y+Z=A+B;(2)X*Y*Z=2450;

补充条件:X<C,Y<C,Z<C。

这道题目,可利用因式分解和枚举。关键句:A 君算了算说:“我还是不知道!”。

首先利用条件1:将2450进行因式分解,枚举X、Y、Z的组合。

2 25 49=76
2 35 35=72
5 14 35=54
5 10 49=64
7 10 35=52
7 14 25=46
5 7  70=82
7 7  50=64 

结合条件2和关键句:A君算了之后说不知道,原因只有:其推算结果存在多种可能,即根据枚举结果,A+B的年龄应为64。此时,存在两个符合条件的X、Y、Z的组合(7,7,50)和(5,10,49)。

根据补充条件:B君说,比C都要小(说明C至少大于49)。这个补充条件是用于在上述两个组合中选出一个来的。当C为50的时候,(5,10,49)符合,(7,7,50)则被排除;当C大于50的时候,如51,这个两个组合都符合,依旧无法确定,补充条件不能白补充上吧。综上,C君为50,而X、Y、Z的组合为(5,10,49)。

答案:

50

10、24点问题

(用+, - , ×, ÷连接下面每组的数字算24点) 
a) 4 4 10 10 
b) 3 3 8 8 
c) 4 4 7 7 
d) 2 4 10 10 

答案:

a) (10*10-4)/4 
b) 8/(3-8/3) 
c) (4-4/7)*7 
d) (2+4/10)*10 



参考资料及推荐阅读:

  1. 《史上最全的笔面智力题(陆续更新答案中)》
  2. ebay笔试题2012年10月13号(你能做出几道)
  3. 2014.3.29 阿里巴巴 实习校招 笔试 题目及部分参考答案


原创粉丝点击