专栏名称: 程序猿
本微信公众号:imkuqin,为程序员提供最新最全的编程学习资料的查询。目前已经开通PHP、C/C++函数库、.NET Framework类库、J2SE API查询功能。
目录
相关文章推荐
程序猿  ·  Linux 版微信正式官宣,居然选了这个 ... ·  2 天前  
OSC开源社区  ·  四名CEO ,扬言要打造新一代基础软件技术栈 ·  4 天前  
程序员的那些事  ·  微信 Linux ... ·  1 周前  
程序猿  ·  Elasticsearch开源仓库404,7 ... ·  1 周前  
程序猿  ·  C/C++大限将至!美国强硬要求:2026年 ... ·  1 周前  
51好读  ›  专栏  ›  程序猿

全球顶尖公司的烧脑面试题,普通人一道都答不出来!

程序猿  · 公众号  · 程序员  · 2016-12-22 23:10

正文

综合大叔爱吐槽、观察者网、三亿文库、网络等


一些世界知名的企业在招聘时,可能会提供面试智力题,来筛选应聘者。那些越是大牌,越是有名的国内500强,乃至世界500强,给出的面试真是一般人都答不出来。


谷歌篇


以下5个问题,据说在谷歌的面试中,都曾用到过。看看你能答对多少?


>>>>

球的重量


有8个球,其中1个比另外的要略重。在不用砝码的前提下,你最少要称几次,才能找出这个球?



>>>>

沙漠尸体


一个人被发现死在沙漠里,手中捏着一根火柴,周围没有任何足迹,也没有其他线索。他是怎么死的呢?



>>>>

罐子和水


你有不限量的水,还有两个罐子,容量分别是5升和3升。请精确的称量出4升水


>>>>

熊的颜色


你建造了一座房子,每面都朝南。突然,你发现一只熊。它是什么颜色?


>>>>

药丸难题


医生给了病人两种药丸,每种两颗,两种药丸的成分不同,但外观一样,医生要求早上和晚上,每种药各吃一颗。现在药丸被混在了一起,难以分辨。如果病人没按照规定吃药或者不吃药,就会死亡。请问他要怎么做才能活下来?


答案如下:


1. 最少称两次:把所有的球分成三组,其中两组每组3个球,另一组2个球;首先,将3个球的两组进行称重,如果其中一组比较重,从这组球当中任选两个,再次称重,如果轻重不等,重的球就是你要找的。如果轻重相等,剩下那个球就是你要找的。如果第一次称重时两组球一样重,那么就把剩下一组的两个球进行称重,就能得到答案。


2. 男子是从飞机上坠落死亡的。可能是因为机械故障之类的原因,有部分乘客必须离开飞机,于是大家用火柴来抽签,而男子的运气不好,只能跳出飞机。


3. 先把5升的罐子装满,然后用罐子里的水来倒满3升的罐子,此时5升罐子中还剩5-3=2升水;倒掉3升罐子里的水,然后把5升罐子里剩下的2升水倒入3升罐子,再次把5升罐子装满水,并用它往3升罐子倒水,由于把3升罐子装满还需要1升水,因此5升罐子里的水量最终变成了5-1=4升水


4. 白色。因为只有在北极,才可能所有的墙都朝南。


5.虽然再去找医生,要求他重新开药,也不能说是错误答案。但聪明的答案是:把所有的4颗药丸都切开成相等的两半,然后早上和晚上,分别吃掉每颗药丸的一半。


微软篇


1. 此题被称为“世上最有心机的面试题”,这种题也只有微软才能想得出来了。


假设有一个直角三角形,斜边长10cm,从顶点到斜边作垂线,垂线长6cm(如下图所示),求直角三角形的面积。

乍一看是不是觉得超级简单,这不就是简单的“面积=(底*高)/2”吗?

注意,这是微软的面试题,这道题可是被称为“世上最有心机的面试题”,一定要知道微软是不会拿一个小学几何难度的题来选拔人才的!


答案揭晓:


根本不存在这么一个直角三角形!


直角三角形斜边所对的角是直角,因此,假设其斜边是一个圆的直径,其顶点就可能在圆周的任何一个点上。如果要作一条垂直于斜边的线,那就一定是垂直于圆的直径的线,也就是说,这条线是圆的半径,长度为5cm。


  

综上所述,这个直角三角形斜边的垂线最长是5cm,根本不可能是6cm。


2. 你让工人为你工作7天,回报是一根金条,这个金条平分成相连的7段,你必须在每天结束的时候给他们一段金条。如果只允许你两次把金条弄断,你怎样给你的工人付费?

答案如下:


分成比例1:2:4的三段,因为两次弄断就是三段,第一天你给1,第二天你给2,找回你1,你自己就有1和4,第三天再给1,自己剩下4,第四天给4,然后叫他把1.2找给你,第五天给1,第六天给2叫他1找给你,第七天把最后1给他。


IBM篇


IBM公司向来以高素质人才作为企业持续竞争力的保证。进入IBM公司是差不多每个IT人的梦想,这条IBM公司面试题给大家试试看。


假设村子中有50个人,每人有一条狗。在这50条狗中有病狗(这种病不会传染)。于是人们就要找出病狗。每个人可以观察其他的49条狗,以判断它们是否生病,只有自己的狗不能看。观察后得到的结果不得交流,也不能通知病狗的主人。主人一旦推算出自己家的是病狗就要枪毙自己的狗,而且每个人只有权利枪毙自己的狗,没有权利打死别人的狗。第一天,第二天都没有枪响。到了第三天传来一阵枪声,问有几条病狗,如何推算得出?



答案如下,很烧脑:


第一种推论: 
  
A、假设有1条病狗,病狗的主人会看到其他狗都没有病,那么就知道自己的狗有病,所以第一天晚上就会有枪响。因为没有枪响,说明病狗数大于1。


B、假设有2条病狗,病狗的主人会看到有1条病狗,因为第一天没有听到枪响,是病狗数大于1,所以病狗的主人会知道自己的狗是病狗,因而第二天会有枪响。既然第二天无枪响,说明病狗数大于2。


由此推理,如果第三天枪响,则有3条病狗。


第二种推论:


如果为1,第一天那条狗必死,因为狗主人没看到病狗,但病狗存在。

若为2,令病狗主人为a,b。 a看到一条病狗,b也看到一条病狗,但a看到b的病狗没死故知狗数不为1,而其他人没病狗,所以自己的狗必为病狗,故开枪;而b的想法与a一样,故也开枪。 由此,为2时,第一天看后2条狗必死。


若为3条,令狗主人为a,b,c。 a第一天看到2条病狗,若a设自己的不是病狗,由推理2,第二天看时,那2条狗没死,故狗数肯定不是2,而其他人没病狗,所以自己的狗必为病狗,故开枪;而b和c的想法与a一样,故也开枪。 


由此,为3时,第二天看后3条狗必死。


若为4条,令狗主人为a,b,c,d。a第一天看到3条病狗,若a设自己的不是病狗,由推理3,第三天看时,那3条狗没死,故狗数肯定不是3,而其他人没病狗,所以自己的狗必为病狗,故开枪;而b和c,d的想法与a一样,故也开枪。 


由此,为4时,第三天看后4条狗必死。


余下即为递推了,由年n-1推出n。 


第四天看时,狗已死了,但是在第三天死的,故答案是3条。


END



●本文编号2136,以后想阅读这篇文章直接输入2136即可。

●本文分类“求职”,搜索分类名可以获得相关文章。

●输入m可以获取到文章目录

本文内容的相关公众号推荐

程序员的那点事

算法与数据结构


更多推荐15个技术类公众微信

涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。