程序员有趣的面试智力题
- 格式:doc
- 大小:23.50 KB
- 文档页数:7
1. 考虑一个双人游戏。
游戏在一个圆桌上进行。
每个游戏者都有足够多的硬币。
他们需要在桌子上轮流放置硬币,每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能有一部分悬在桌子外面),并且不能与原来放过的硬币重叠。
谁没有地方放置新的硬币,谁就输了。
游戏的先行者还是后行者有必胜策略?这种策略是什么?答案:先行者在桌子中心放置一枚硬币,以后的硬币总是放在与后行者刚才放的地方相对称的位置。
这样,只要后行者能放,先行者一定也有地方放。
先行者必胜。
2. 用线性时间和常数附加空间将一篇文章的单词(不是字符)倒序。
答案:先将整篇文章的所有字符逆序(从两头起不断交换位置相对称的字符);然后用同样的办法将每个单词内部的字符逆序。
这样,整篇文章的单词顺序颠倒了,但单词本身又被转回来了。
3. 用线性时间和常数附加空间将一个长度为n的字符串向左循环移动m位(例如,"abcdefg"移动3位就变成了"defgabc")。
答案:把字符串切成长为m和n-m的两半。
将这两个部分分别逆序,再对整个字符串逆序。
4. 一个矩形蛋糕,蛋糕内部有一块矩形的空洞。
只用一刀,如何将蛋糕切成大小相等的两块?答案:注意到平分矩形面积的线都经过矩形的中心。
过大矩形和空心矩形各自的中心画一条线,这条线显然把两个矩形都分成了一半,它们的差当然也是相等的。
5. 一块矩形的巧克力,初始时由N x M个小块组成。
每一次你只能把一块巧克力掰成两个小矩形。
最少需要几次才能把它们掰成N x M块1x1的小巧克力?答案:N x M - 1次显然足够了。
这个数目也是必需的,因为每掰一次后当前巧克力的块数只能增加一,把巧克力分成N x M块当然需要至少掰N x M - 1次。
6. 如何快速找出一个32位整数的二进制表达里有多少个"1"?用关于"1"的个数的线性时间?答案1(关于数字位数线性):for(n=0; b; b >>= 1) if (b & 1) n++;答案2(关于"1"的个数线性):for(n=0; b; n++) b &= b-1;7. 一个大小为N的数组,所有数都是不超过N-1的正整数。
程序员面试智力题1.扑克牌问题问题:一付54张扑克牌,其中有十张是翻过来的。
现在把你的眼睛蒙上(绝对没有偷看的可能),让你把扑克牌分成两叠(两叠的多少可以不一样)。
要求在两叠中翻过来的扑克牌是相等的。
请问该怎么做?除了扑克牌的数目,其它因数(扑克牌大小,重量,颜色,表面触摸的感觉,等等)不参与题目之中。
扑克牌可以任意次重新排序、翻转。
10张翻过来的扑克牌是随机分布在扑克牌中。
答案:第一步,你在这54张牌中任意取出10张,现在,扑克牌分成了两叠。
44张和10张;第二步,44张那叠不动,将10张这叠每张都翻过来,便得到了符合条件的两叠牌。
解释:第一步之后,设44张那叠中正面牌x张,10张那叠中正面牌则为10-x张。
第二步之后,44张那叠中正面牌保持x张,10张那叠反过来了:反面牌为10-x张,正面牌x张。
2.分金条问题问题:有个商人雇用了一位手艺高超的工匠了为他做一个精致产品,工作一星期七天的代价是一条金条。
商人手头上有一条金条,刚好有可以付工匠一星期的工钱。
但工匠要求工钱要按每天来付。
虽然他并不急着用钱,每天有钱进账,老人心里总是踏实一些。
但商人家中有个规矩,金条每星期只能切二刀。
后来商人想出以了个切割金条的办法,满足了工匠的要求。
你知道商人是怎么切割金条才能满足工匠的吗?答案:切成1、2、4。
解释:这三个二进制数的组合能表示0-7中的任何一个。
3.送花瓶问题:古时候有一位商人要让伙计将一个精致的花瓶送到买主的手里。
买主住在很远的地方,路途中间要经过土匪出没的地方。
土匪要是见到花瓶就会抢走。
但土匪不会打开锁着的东西,只要把花瓶锁在箱子里就可以安全地送到目的地(这土匪看起来还很文明)。
所以商人准备了一个大箱子,在箱子上装了个很大很结实的的锁扣,足以挂几把锁。
商人还准备了一把精致的铁锁将花瓶锁在箱子里。
这把铁锁的钥匙是独一无二的,没有这把钥匙,按照当时的技术箱子是绝对打不开的。
但问题来了,土匪只要见到钥匙就会没收。
智力问题(软件工程师面试)一、在一个与外界不往来的村庄中,住了三个人。
这三个人都不能说话,但都很聪明。
这村庄人的头发,不是黑色就是红色。
这村庄也没有任何可经由反射而看到自己的物体(如:镜子,湖水)所以这三人都无法得知自己头发的颜色。
这村庄有个习俗:知道自己头发的颜色后再自杀,可以快乐的上天堂;若猜错自己头发颜色就自杀,那就会痛苦地下地狱。
这三个人都很想上天堂,但都苦于无法得知自己的发色而迟迟无法进行。
这三人每天中午都会在广场上聚集,彼此相望,希望能得知自己的头发颜色。
这种困境一直到一个外地人的介入而打破。
有一天,一个外地人进入了这村庄,在广场碰到了这三人,随口说了一句话:「你们三人至少有一个是红头发。
」说完便离开村庄了。
当天三人听完这句话,都纷纷回家苦思。
第二天中午,三人依旧一起在广场见面。
第二天晚上回去,就有两人自杀成功。
第三天中午,只剩一个人到广场。
此人回去后也自杀成功了。
请问:这三人的头发分别为什么颜色?(说明理由)二、(一)玛丽莲问题玛丽莲问题是咳嗽兄昨天介绍的一个有趣的智力游戏(他用来类比一个有人认为不太有趣的话题):有三扇门可供选择,其中一扇门后面是汽车,另两扇门后面是山羊。
你当然想选中汽车。
主持人让你随便选。
比如,你选中了一号门。
于是,主持人打开了后面是山羊的一扇门,比如是三号门。
现在主持人问你:“为了以较大的概率选中汽车,你是坚持选一号门,还是愿意换选二号门?”这道题目的标准答案是换选二号门。
我当时对这个答案提出了疑问,认为在条件概率形式下,当三号门后面出现山羊时,一号和二号门后面是车的概率仍然均等。
深圳兄同意这个意见;咳嗽兄、长戟兄则分别从相对论和散文及童话故事对“换”的答案给予了证明。
但一直到无限兄提出一个翻牌模型,才使我开始看到“换”的方案背后的正确逻辑。
(二)条件概率:全概率和贝叶斯公式解游戏开始,设P(X)为A、B、C三道门后面有车的概率,则P(A)=P(B)=P©=1/3假定:游戏者任选了一道门A,而主持人(HOST)打开一道后面是羊的门,事实上有两种情况。
A.逻辑推理1、你让工人为你工作7天,给工人的回报是一根金条。
金条平分成相连的7 段,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给你的工人付费?2、请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份。
3、小明一家过一座桥,过桥时是黑夜,所以必须有灯。
现在小明过桥要1秒,小明的弟弟要3秒,小明的爸爸要6秒,小明的妈妈要8秒,小明的爷爷要12秒。
每次此桥最多可过两人,而过桥的速度依过桥最慢者而定,而且灯在点燃后30秒就会熄灭。
问:小明一家如何过桥?4、一群人开舞会,每人头上都戴着一顶帽子。
帽子只有黑白两种,黑的至少有一顶。
每个人都能看到其他人帽子的颜色,却看不到自己的。
主持人先让大家看看别人头上戴的是什么帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自己一个耳光。
第一次关灯,没有声音。
于是再开灯,大家再看一遍,关灯时仍然鸦雀无声。
一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。
问有多少人戴着黑帽子?5、请估算一下CNTOWER电视塔的质量。
6、一楼到十楼的每层电梯门口都放着一颗钻石,钻石大小不一。
你乘坐电梯从一楼到十楼,每层楼电梯门都会打开一次,只能拿一次钻石,问怎样才能拿到最大的一颗?7、U2合唱团在17分钟内得赶到演唱会场,途中必需跨过一座桥,四个人从桥的同一端出发,你得帮助他们到达另一端,天色很暗,而他们只有一只手电筒。
一次同时最多可以有两人一起过桥,而过桥的时候必须持有手电筒,所以就得有人把手电筒带来带去,来回桥两端。
手电筒是不能用丢的方式来传递的。
四个人的步行速度各不同,若两人同行则以较慢者的速度为准。
Bono需花1分钟过桥,Edge需花 2 分钟过桥,Adam需花5分钟过桥,Larry需花10分钟过桥。
他们要如何在17分钟内过桥呢?8、烧一根不均匀的绳要用一个小时,如何用它来判断半个小时 ?9、为什么下水道的盖子是圆的?10、美国有多少辆加油站(汽车)?11、有7克、2克砝码各一个,天平一只,如何只用这些物品三次将140克的盐分成50、90克各一份?12、有一辆火车以每小时15公里的速度离开洛杉矶直奔纽约,另一辆火车以第小时20公里的速度从纽约开往洛杉矶。
关于程序员的脑筋急转弯(附答案)1、程序猿最常去的是哪间酒吧?2、程序猿什么情况下会选择离职?3、0是假,1是真,请问这是真还是假?4、你怎样才能知道⼀个计算机科学家是内向还是外向的?5、为什么⼤部分Java程序员都是戴眼镜的?6、怎样区分HTML和HTML5?7、⼗个程序员站成⼀排报数,但最后只有9个,为什么?8、如何⽤⾯向对象的⽅式成为⼀个有钱⼈?9、电脑跟空调有什么共同点?10、有什么事情别⼈看来很奇怪但在程序员眼中却很平常?11、有3位SQL(注意是拟⼈⼿法)⾛进了⼀间NoSQL的酒吧,但很快他们就出来了,为什么?12、对于程序员来说,换⼀个灯泡要多长时间?13、如果⽤⼀种“类”来形容⼥性,请忌讳使⽤什么?14、为什么程序员总是分不清万圣节和圣诞节?15、程序员和⾮程序员之间有啥区别?16、⼀位程序员沐浴,但却死在浴室⾥,为什么?17、杀死⼀只蟑螂需要多少个程序员?18、⽤⼗根指头可以数多⼤的数字?19、为什么说学C的⼈最⽜B?20、有⼀天,王⼦直接闯进怪兽的巢⽳要杀死怪兽。
当怪兽出现,王⼦将怪兽砍死,但是,却变成了两头怪兽。
于是王⼦⼜将它们砍死,结果却出现了4头怪兽。
王⼦再砍,结果出现了16头怪兽……就这样⼀直砍,当砍死128头怪兽的时候,出现了256头怪兽……王⼦⼼想:“我去,咋没完没了。
”但是,当王⼦将最后出现的256头怪兽砍死之后,怪兽就真的死了,为什么?21、程序员眼中的世界只有10种⼈,为什么?答案:1、Foo Bar2、在他⽆法获取到数组的时候(tips:arrays的发⾳)3、14、外向的计算机科学家在跟你说话的时候会看着你的鞋⼦。
5、因为他们看不清(tips:C#)6、请⽤IE浏览器打开它。
可以打开吗?No。
它是HTML57、因为第⼀个报了“0”8、继承9、当打开窗户的时候他们都变得没有⽤处(tips:windows)10、有个傻⼦(foo)⾛进⼀间酒吧(bar),转了⼀圈,然后说“你好,世界!(Hello world)”11、因为他们找不到桌⼦(tips:table)12、不需花费任何时间,因为这是⼀个硬件问题13、集合类。
第1篇随着互联网和科技行业的迅猛发展,各大IT大厂对于人才的渴求日益增长。
为了选拔出最优秀的候选人,IT大厂往往会设置一系列智力测试题,以考察应聘者的逻辑思维、创新能力、问题解决能力等。
以下是一份针对IT大厂招聘的智力测试题,共有25题,分为五大模块,总字数超过2500字。
模块一:逻辑推理1. 一个人走进一家餐厅,发现餐厅里只有一个服务员。
他问服务员:“请问这里有番茄酱吗?”服务员回答:“没有,但是我们这里有芥末酱。
”这个人失望地走了出去。
请问为什么?2. 有三个开关,对应着三个房间。
你只能进一次房间,怎样确定哪个开关对应哪个房间?3. 一个房间里有五盏灯,其中三盏在同一房间,两盏在另一房间。
你只能打开一扇门,怎样才能确定哪三盏灯在同一房间?4. 有四个房间,每个房间都有不同的颜色:红色、蓝色、绿色和黄色。
每个房间都有一个门,门上分别写着“红色”、“蓝色”、“绿色”和“黄色”。
但是,每个门上都写着两个颜色,且只有一个颜色是正确的。
你只能进一次房间,怎样确定每个门上正确的颜色?5. 一个农夫有三个儿子,他们的年龄分别是3岁、4岁和5岁。
一天,农夫的邻居问他:“你的三个儿子年龄加起来是多少?”农夫回答:“我告诉过你,他们年龄加起来是12岁,但是我忘了告诉你,最小的儿子不会说话。
”请问三个儿子的年龄分别是多少?模块二:数学能力6. 一个人有一堆硬币,硬币的总额是100元。
硬币的面值有1元、5元、10元和20元。
他要用这些硬币凑出50元,一共有几种组合方式?7. 一个班级有20名学生,其中有10名男生和10名女生。
现在要从中选出3名男生和3名女生组成一个小组。
一共有多少种不同的组合方式?8. 一个长方体的长、宽、高分别是6cm、4cm和3cm。
求这个长方体的体积。
9. 一个圆形的半径是5cm,求这个圆的周长。
10. 一个正方形的对角线长度是10cm,求这个正方形的面积。
模块三:创新能力11. 如果你是一位软件工程师,如何设计一个可以自动识别并纠正拼写错误的程序?12. 如何利用大数据技术提高城市的交通流量?13. 请设计一个智能家居系统,包括智能灯泡、智能插座、智能空调等,并说明如何实现它们之间的互联互通。
程序员有趣的面试智力题及答案1、考虑一个双人游戏。
游戏在一个圆桌上进行。
每个游戏者都有足够多的硬币。
他们需要在桌子上轮流放置硬币,每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能有一部分悬在桌子外面),并且不能与原来放过的硬币重叠。
谁没有地方放置新的硬币,谁就输了。
游戏的先行者还是后行者有必胜策略?这种策略是什么?答案:先行者在桌子中心放置一枚硬币,以后的硬币总是放在与后行者刚才放的地方相对称的位置。
这样,只要后行者能放,先行者一定也有地方放。
先行者必胜。
2、用线性时间和常数附加空间将一篇文章的单词(不是字符)倒序。
答案:先将整篇文章的所有字符逆序(从两头起不断交换位置相对称的字符);然后用同样的办法将每个单词内部的字符逆序。
这样,整篇文章的单词顺序颠倒了,但单词本身又被转回来了。
3、用线性时间和常数附加空间将一个长度为n的字符串向左循环移动m位(例如,"abcdefg"移动3位就变成了"defgabc")。
答案:把字符串切成长为m和n-m的两半。
将这两个部分分别逆序,再对整个字符串逆序。
4、一个矩形蛋糕,蛋糕内部有一块矩形的空洞。
只用一刀,如何将蛋糕切成大小相等的两块?答案:注意到平分矩形面积的线都经过矩形的中心。
过大矩形和空心矩形各自的中心画一条线,这条线显然把两个矩形都分成了一半,它们的差当然也是相等的。
5、一块矩形的巧克力,初始时由N x M个小块组成。
每一次你只能把一块巧克力掰成两个小矩形。
最少需要几次才能把它们掰成N x M块1x1的小巧克力?答案:N x M-1次显然足够了。
这个数目也是必需的,因为每掰一次后当前巧克力的块数只能增加一,把巧克力分成N x M 块当然需要至少掰N x M-1次。
6、如何快速找出一个32位整数的二进制表达里有多少个"1"?用关于"1"的个数的线性时间?答案1(关于数字位数线性):for(n=0;b;b>>=1)if(b& 1)n++;答案2(关于"1"的个数线性):for(n=0;b;n++)b&=b-1;7、一个大小为N的数组,所有数都是不超过N-1的正整数。
第1篇在当今这个数字化时代,IT行业的发展日新月异,各大科技公司对人才的选拔也日益严格。
为了选拔出具有卓越思维能力和创新精神的优秀人才,许多IT大厂在面试过程中会设置一系列的智力测试题。
以下是精心准备的2500字以上的智力测试题,旨在挑战你的思维极限,让你一窥IT大厂的选拔标准。
第一部分:逻辑推理题1. 九九乘法表悖论你面前有一张九九乘法表,其中有一个数字是错误的。
你只能查看九九乘法表一次,请找出错误的数字。
2. 逻辑排错下面是一个逻辑排错题,请找出错误的地方:- 如果A发生,则B发生。
- 如果B发生,则C发生。
- 如果C发生,则D发生。
- 如果D发生,则A发生。
请问:哪个条件是错误的?3. 数列规律下面是一个数列:2,4,8,16,32,64,... 请问下一个数是什么?4. 字母排列给定一组字母:A,B,C,D,E,F,请按照某种规律排列这些字母,使得排列后的句子有意义。
5. 密码破解你面前有一个密码锁,上面有五个转盘,每个转盘上有数字0-9。
密码是五个数字的组合。
以下是你尝试过的密码组合:- 12345- 23456- 34567- 45678- 56789请问下一个可能的密码组合是什么?第二部分:数学问题1. 数学悖论有一个房间里有100个人,每个人头上都戴着一顶帽子,帽子只有两种颜色:红色和蓝色。
房间里的人看不到自己的帽子颜色,但可以看到其他人的帽子颜色。
现在,房间里的人可以开始说话,但每个人只能说出一次话。
如果有人说出了自己的帽子颜色,那么其他人就能立刻知道自己的帽子颜色。
请问:最少需要多少人说话,才能确保所有人都能知道自己的帽子颜色?2. 整数拆分给定一个整数N,请将其拆分成两个正整数,使得它们的乘积最大。
3. 数列求和给定一个数列:1,2,3,5,8,13,21,34,... 请问第N项是多少?4. 几何问题一个长方体的长、宽、高分别为a、b、c。
请计算长方体的体积。
5. 概率问题从一副52张的扑克牌中随机抽取一张牌,抽到红桃的概率是多少?第三部分:编程题1. 排序算法编写一个程序,对以下数组进行排序:[5, 2, 8, 3, 1, 6, 4, 7]。
算法面试智力概率题哎呀,小伙伴们,算法面试里的智力概率题可真是个有趣又烧脑的存在呢。
咱就先从一些基础的开始唠唠哈。
1. 抛硬币问题有一个均匀的硬币,抛3次,问出现2次正面的概率是多少呢?这题呀,咱得先知道抛一次硬币出现正面的概率是1/2。
抛3次硬币,总共的情况有2的3次方,也就是8种。
出现2次正面的情况呢,就像正正反、正反正、反正正这3种,所以概率就是3/8啦。
2. 摸球问题有一个盒子,里面有3个红球和2个白球。
现在从盒子里随机摸2个球,问摸到一红一白的概率是多少?首先算从5个球里摸2个球的总组合数,根据组合公式C(n,k)=n!/(k!(n - k)!),这里n = 5,k = 2,算出来是10种。
然后算摸到一红一白的组合数,从3个红球里选1个,有3种选法,从2个白球里选1个,有2种选法,总共就是3×2 = 6种。
所以摸到一红一白的概率就是6/10 = 3/5。
3. 抽奖问题有10张奖券,其中3张是中奖券。
现在有5个人依次抽奖,问第3个人中奖的概率是多少?其实不管是第几个抽奖,中奖概率都是一样的哦。
因为每个人抽奖的时候,都是从10张奖券里抽,其中3张中奖券,所以第3个人中奖的概率也是3/10。
4. 骰子问题掷两个骰子,问点数之和为7的概率是多少?两个骰子掷出的结果总共有6×6 = 36种。
点数之和为7的情况有(1,6)、(2,5)、(3,4)、(4,3)、(5,2)、(6,1)这6种,所以概率就是6/36 = 1/6。
5. 生日问题在一个房间里,至少要有多少人,才能保证有两个人生日相同(一年按365天算)?这个问题有点绕哦。
我们可以从反面想,要保证没有两个人生日相同的最大人数是365人,当有366个人的时候就一定有两个人生日相同了。
但是如果是问概率的话,当有23个人的时候,有两个人生日相同的概率就超过50%啦。
这是因为计算比较复杂,这里就不详细展开啦。
6. 条件概率问题已知事件A发生的概率是0.6,事件B发生的概率是0.4,在事件A发生的条件下,事件B发生的概率是0.3,问事件A和事件B 同时发生的概率是多少?根据条件概率公式P(A∩B)=P(B A)×P(A),这里就是0.3×0.6 = 0.18啦。
第1篇一、IT行业1. 你如何看待“程序员的代码就是艺术”这句话?2. 如果你发现你的代码被同事篡改,你会怎么做?3. 你如何看待“敏捷开发”和“瀑布开发”?4. 请解释一下HTTP协议的工作原理。
5. 如果你是一名程序员,如何处理工作压力和团队冲突?6. 请描述一次你解决了一个特别棘手的bug的经历。
7. 你认为人工智能在未来会取代程序员吗?为什么?8. 如果你需要在两个不同的编程语言中选择一个来开发一个项目,你会如何选择?9. 请解释一下“大数据”和“云计算”之间的关系。
10. 如果你正在编写一个Web应用程序,你会如何处理用户输入的安全性?二、金融行业1. 你如何看待金融行业的风险控制?2. 请解释一下“金融衍生品”的概念。
3. 如果你是一名投资银行家,如何评估一个公司的投资价值?4. 请描述一次你处理了一个紧急金融问题的经历。
5. 你如何看待金融行业的道德和伦理问题?6. 如果你是一名基金经理,如何平衡短期收益和长期价值?7. 请解释一下“量化投资”和“基本面分析”之间的区别。
8. 你如何看待金融科技(FinTech)对传统金融行业的影响?9. 如果你发现你的客户有欺诈行为,你会如何处理?10. 请描述一次你成功说服客户进行投资或贷款的经历。
三、医疗行业1. 你如何看待医生与患者之间的关系?2. 请解释一下“生物伦理学”的概念。
3. 如果你是一名医生,如何处理医患矛盾?4. 你如何看待医疗行业的隐私保护问题?5. 请描述一次你成功挽救了一个患者生命的经历。
6. 你认为人工智能在医疗领域的应用前景如何?7. 如果你是一名护士,如何应对高压工作环境?8. 请解释一下“抗生素耐药性”的概念。
9. 你如何看待医疗行业的市场化改革?10. 如果你是一名医生,如何平衡工作与家庭生活?四、教育行业1. 你如何看待“素质教育”和“应试教育”?2. 请解释一下“教育公平”的概念。
3. 如果你是一名教师,如何激发学生的学习兴趣?4. 你如何看待网络教育的发展?5. 请描述一次你成功帮助一个学生克服学习困难的经历。
面试智力题1、2的64次方是多少?答案:如果你不是因为坐在面试室里,手边没有计算器的话,应该可以很容易找到答案,即1.84467441 乘以10的19次方。
应聘职位:软件工程2、在一个两维平面上有三个不在一条直线上的点。
请问能够作出几条与这些点距离相同的线?答案:三条。
将两点之间联成一条线段。
在这条线段与第三点之间正中的位置,做一条与此线段平行的直线,即为一条距三点等距的线。
然后按此方法对其余两点的组合做出另外两条来。
应聘职位:软件工程师3、在太平洋的一个小岛上生活着土人,他们不愿意被外人打扰,一天,一个探险家到了岛上,被土人抓住,土人的祭司告诉他,你临死前还可以有一个机会留下一句话,如果这句话是真的,你将被烧死,是假的,你将被五马分尸,可怜的探险家如何才能活下来?答案:说:“我会被五马分尸”,就形成悖论。
4、27个小运动员在参加完比赛后,口渴难耐,去小店买饮料,饮料店搞促销,凭三个空瓶可以再换一瓶,他们最少买多少瓶饮料才能保证一人一瓶?答案:三个空瓶就可以换得一个新瓶,这个题只要知道9个空瓶可以换3个新瓶,而这三个又可以在换一个新的就可以解答了。
这样的解答是买9个送3+1个,再买9个送3+1个,这个时候再买一瓶就到27了。
这样19瓶。
还有一种答案是9+3+1+9+3+1这个时候还有一个人没有就向老板先赊一瓶,然后喝晚正好还剩3瓶,一起还了就不用付钱了,这样18瓶。
根据第二种得思路要27瓶直接赊27个然后可以还9个去掉这9个一样得到18。
5、有两根不均匀分布的香,香烧完的时间是一个小时,你能用什么方法来确定一段15分钟的时间?答:把两根香同时点起来,第一支香两头点着,另一支香只烧一头,等第一支香烧完的同时(这是烧完总长度的3/4),把第二支香另一头点燃,另一头从燃起到熄灭的时间就是15分!6、1元钱一瓶汽水,喝完后两个空瓶换一瓶汽水,问:你有20元钱,最多可以喝到几瓶汽水?答:39瓶,从第2瓶开始,相当于1元买2瓶。
IT面试常见的智力问题解答IT面试常见的智力问题1、两柱香问题题目:有两柱不均匀的香,每柱香燃烧完需要1个小时,问:怎样用两柱香切出一个15分钟的时间段?这个题的重点就是怎么切解答:将甲香的一头点着,将乙香的两头点着,当乙香燃烧完时,说明已经过了半个小时,同时也说明甲香也正好燃烧了一半,此时,将甲香的另一头点着,从此时起到甲香完全烧完,正好15分钟。
2、灯管问题在房里有三盏灯,房外有三个开关,在房外看不见房内的情况,你只能进门一次,你用什么方法来区分那个开关控制那一盏灯?解答:打开一盏灯10分钟,关掉,打开第二盏,进去看看哪盏亮,摸摸哪盏热,热的是第一个打开的开关开的,亮的是第二个开关开的,另一个就是第三个。
3、两位盲人问题他们都各自买了两对黑袜和两对白袜,八对袜了的布质、大小完全相同,而每对袜了都有一张商标纸连着。
两位盲人不小心将八对袜了混在一起。
他们每人怎样才能取回黑袜和白袜各两对呢?答案:每一对分开,一人拿一只,因为袜子不分左右脚的;4、果冻问题你有一桶果冻,其中有黄色,绿色,红色三种,闭上眼睛,同时抓取两个果冻。
抓取多少个就可以确定你肯定有两个同一颜色的果冻?答案:2次4个!5、喝啤酒问题假如每3个空啤酒瓶可以换一瓶啤酒,某人买了10瓶啤酒,那么他最多可以喝到多少瓶啤酒?答案:喝完10瓶后用9个空瓶换来3瓶啤酒(喝完后有4个空瓶)喝完这三瓶又可以换到1瓶啤酒(喝完后有2个空瓶),这时他有2个空酒瓶,如果他能向老板先借一个空酒瓶,就凑够了3个空瓶可以换到一瓶啤酒,把这瓶喝完后将空瓶还给老板就可以了。
所以他最多可以喝10+3+1+1=15瓶6、三人住旅馆有三个人去住旅馆,住三间房,每一间房$10元,于是他们一共付给老板$30,第二天,老板觉得三间房只需要$25元就够了于是叫小弟退回$5给三位客人,谁知小弟贪心,只退回每人$1,自己偷偷拿了$2,这样一来便等于那三位客人每人各花了九元,于是三个人一共花了$27,再加上小弟独吞了不$2,总共是$29。
程序员奇葩面试题在招聘过程中,有时候面试官会出一些奇葩的面试题来考察面试者的思维能力和解决问题的能力。
下面就为大家盘点几个程序员奇葩面试题,让我们一起来解答吧!题目一:倒计时程序要求:编写一个倒计时程序,从给定的时间开始按秒数倒计时,并在倒计时结束时发出提醒。
提示:可以使用线程或定时器来实现倒计时,通过输入输出操作实现提醒。
解答:```pythonimport timedef countdown(seconds):while seconds > 0:print(seconds)time.sleep(1)seconds -= 1print("倒计时结束!")seconds = int(input("请输入倒计时秒数:"))countdown(seconds)```题目二:日期计算器要求:编写一个日期计算器,输入一个日期和一个天数,计算出指定天数后的日期。
提示:可以使用日期时间模块来进行日期计算。
解答:```pythonfrom datetime import datetime, timedeltadate_str = input("请输入日期(格式:YYYY-MM-DD):")days = int(input("请输入天数:"))date = datetime.strptime(date_str, "%Y-%m-%d")new_date = date + timedelta(days=days)print("指定天数后的日期为:", new_date.strftime("%Y-%m-%d")) ```题目三:斐波那契数列要求:编写一个函数,输入一个正整数n,返回斐波那契数列的第n项。
提示:可以使用递归或循环来实现斐波那契数列的计算。
解答:```pythondef fibonacci(n):if n <= 0:return Noneelif n == 1 or n == 2:return 1else:a, b = 1, 1for _ in range(n - 2):a, b = b, a + breturn bn = int(input("请输入正整数n:"))result = fibonacci(n)print("斐波那契数列的第{}项为:{}".format(n, result))```通过以上面试题的解答,我们可以看到,程序员面试题的解答过程中主要是考察面试者的编程能力和解决问题的能力。
程序员有趣的面试智力题1、考虑一个双人游戏。
游戏在一个圆桌上进行。
每个游戏者都有足够多的硬币。
他们需要在桌子上轮流放置硬币,每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能有一部分悬在桌子外面),并且不能与原来放过的硬币重叠。
谁没有地方放置新的硬币,谁就输了。
游戏的先行者还是后行者有必胜策略,这种策略是什么, 答案:先行者在桌子中心放置一枚硬币,以后的硬币总是放在与后行者刚才放的地方相对称的位置。
这样,只要后行者能放,先行者一定也有地方放。
先行者必胜。
2、用线性时间和常数附加空间将一篇文章的单词(不是字符)倒序。
答案:先将整篇文章的所有字符逆序(从两头起不断交换位置相对称的字符);然后用同样的办法将每个单词内部的字符逆序。
这样,整篇文章的单词顺序颠倒了,但单词本身又被转回来了。
3、用线性时间和常数附加空间将一个长度为n的字符串向左循环移动m位(例如,"abcdefg"移动3位就变成了"defgabc")。
答案:把字符串切成长为m和n-m的两半。
将这两个部分分别逆序,再对整个字符串逆序。
4、一个矩形蛋糕,蛋糕内部有一块矩形的空洞。
只用一刀,如何将蛋糕切成大小相等的两块,答案:注意到平分矩形面积的线都经过矩形的中心。
过大矩形和空心矩形各自的中心画一条线,这条线显然把两个矩形都分成了一半,它们的差当然也是相等的。
5、一块矩形的巧克力,初始时由N x M个小块组成。
每一次你只能把一块巧克力掰成两个小矩形。
最少需要几次才能把它们掰成N x M块1x1的小巧克力, 答案:N x M - 1次显然足够了。
这个数目也是必需的,因为每掰一次后当前巧克力的块数只能增加一,把巧克力分成N x M块当然需要至少掰N x M - 1次。
6、如何快速找出一个32位整数的二进制表达里有多少个"1",用关于"1"的个数的线性时间,答案1(关于数字位数线性):for(n=0; b; b >>= 1) if (b & 1) n++;答案2(关于"1"的个数线性):for(n=0; b; n++) b &= b-1;7、一个大小为N的数组,所有数都是不超过N-1的正整数。
用O(N)的时间找出重复的那个数(假设只有一个)。
一个大小为N的数组,所有数都是不超过N+1的正整数。
用O(N)的时间找出没有出现过的那个数(假设只有一个)。
答案:计算数组中的所有数的和,再计算出从1到N-1的所有数的和,两者之差即为重复的那个数。
计算数组中的所有数的和,再计算出从1到N+1的所有数的和,两者之差即为缺少的那个数。
8、给出一行C语言表达式,判断给定的整数是否是一个2的幂。
答案:(b & (b-1)) == 09、地球上有多少个点,使得从该点出发向南走一英里,向东走一英里,再向北走一英里之后恰好回到了起点,答案:“北极点”是一个传统的答案,其实这个问题还有其它的答案。
事实上,满足要求的点有无穷多个。
所有距离南极点1 + 1/(2π)英里的地方都是满足要求的,向南走一英里后到达距离南极点1/(2π)的地方,向东走一英里后正好绕行纬度圈一周,再向北走原路返回到起点。
事实上,这仍然不是满足要求的全部点。
距离南极点1 + 1/(2kπ)的地方都是可以的,其中k可以是任意一个正整数。
10、A、B两人分别在两座岛上。
B生病了,A有B所需要的药。
C有一艘小船和一个可以上锁的箱子。
C愿意在A和B之间运东西,但东西只能放在箱子里。
只要箱子没被上锁,C都会偷走箱子里的东西,不管箱子里有什么。
如果A和B各自有一把锁和只能开自己那把锁的钥匙,A应该如何把东西安全递交给B, 答案:A把药放进箱子,用自己的锁把箱子锁上。
B拿到箱子后,再在箱子上加一把自己的锁。
箱子运回A后,A取下自己的锁。
箱子再运到B手中时,B取下自己的锁,获得药物。
11、一对夫妇邀请N-1对夫妇参加聚会(因此聚会上总共有2N人)。
每个人都和所有自己不认识的人握了一次手。
然后,男主人问其余所有人(共2N-1个人)各自都握了几次手,得到的答案全部都不一样。
假设每个人都认识自己的配偶,那么女主人握了几次手, 答案:握手次数只可能是从0到2N-2这2N-1个数。
除去男主人外,一共有2N-1个人,因此每个数恰好出现了一次。
其中有一个人(0)没有握手,有一个人(2N-2)和所有其它的夫妇都握了手。
这两个人肯定是一对夫妻,否则后者将和前者握手(从而前者的握手次数不再是0)。
除去这对夫妻外,有一个人(1)只与(2N-2)握过手,有一个人(2N-3)和除了(0)以外的其它夫妇都握了手。
这两个人肯定是一对夫妻,否则后者将和前者握手(从而前者的握手次数不再是1)。
以此类推,直到握过N-2次手的人和握过N次手的人配成一对。
此时,除了男主人及其配偶以外,其余所有人都已经配对。
根据排除法,最后剩下来的那个握手次数为N-1的人就是女主人了。
12、两个机器人,初始时位于数轴上的不同位置。
给这两个机器人输入一段相同的程序,使得这两个机器人保证可以相遇。
程序只能包含“左移n个单位”、“右移n个单位”,条件判断语句If,循环语句while,以及两个返回Boolean 值的函数“在自己的起点处”和“在对方的起点处”。
你不能使用其它的变量和计数器。
答案:两个机器人同时开始以单位速度右移,直到一个机器人走到另外一个机器人的起点处。
然后,该机器人以双倍速度追赶对方。
程序如下。
while(!at_other_robots_start) {move_right 1}while(true) {move_right 2}13、如果叫你从下面两种游戏中选择一种,你选择哪一种,为什么, a. 写下一句话。
如果这句话为真,你将获得10美元;如果这句话为假,你获得的金钱将少于10美元或多于10美元(但不能恰好为10美元)。
b. 写下一句话。
不管这句话的真假,你都会得到多于10美元的钱。
答案:选择第一种游戏,并写下“我既不会得到10美元,也不会得到10000000美元”。
14、你在一幢100层大楼下,有21根电线线头标有数字1..21。
这些电线一直延伸到大楼楼顶,楼顶的线头处标有字母A..U。
你不知道下面的数字和上面的字母的对应关系。
你有一个电池,一个灯泡,和许多很短的电线。
如何只上下楼一次就能确定电线线头的对应关系, 答案:在下面把2,3连在一起,把4到6全连在一起,把7到10全连在一起,等等,这样你就把电线分成了6个“等价类”,大小分别为1, 2, 3, 4, 5, 6。
然后到楼顶,测出哪根线和其它所有电线都不相连,哪些线和另外一根相连,哪些线和另外两根相连,等等,从而确定出字母A..U各属于哪个等价类。
现在,把每个等价类中的第一个字母连在一起,形成一个大小为6的新等价类;再把后5个等价类中的第二个字母连在一起,形成一个大小为5的新等价类;以此类推。
回到楼下,把新的等价类区别出来。
这样,你就知道了每个数字对应了哪一个原等价类的第几个字母,从而解决问题。
15、某种药方要求非常严格,你每天需要同时服用A、B两种药片各一颗,不能多也不能少。
这种药非常贵,你不希望有任何一点的浪费。
一天,你打开装药片A 的药瓶,倒出一粒药片放在手心;然后打开另一个药瓶,但不小心倒出了两粒药片。
现在,你手心上有一颗药片A,两颗药片B,并且你无法区别哪个是A,哪个是 B。
你如何才能严格遵循药方服用药片,并且不能有任何的浪费, 答案:把手上的三片药各自切成两半,分成两堆摆放。
再取出一粒药片A,也把它切成两半,然后在每一堆里加上半片的A。
现在,每一堆药片恰好包含两个半片的A和两个半片的B。
一天服用其中一堆即可。
16、你在一个飞船上,飞船上的计算机有n个处理器。
突然,飞船受到外星激光武器的攻击,一些处理器被损坏了。
你知道有超过一半的处理器仍然是好的。
你可以向一个处理器询问另一个处理器是好的还是坏的。
一个好的处理器总是说真话,一个坏的处理器总是说假话。
用n-2次询问找出一个好的处理器。
答案:给处理器从1到n标号。
用符号a->b表示向标号为a的处理器询问处理器b是不是好的。
首先问1->2,如果1说不是,就把他们俩都去掉(去掉了一个好的和一个坏的,则剩下的处理器中好的仍然过半),然后从 3->4开始继续发问。
如果1说2是好的,就继续问2->3,3->4,……直到某一次j说j+1是坏的,把j和j+1去掉,然后问 j-1 -> j+2;或者从j+2 -> j+3开始发问,如果前面已经没有j-1了(之前已经被去掉过了)。
注意到你始终维护着这样一个“链”,前面的每一个处理器都说后面那个是好的。
这条链里的所有处理器要么都是好的,要么都是坏的。
当这条链越来越长,剩下的处理器越来越少时,总有一个时候这条链超过了剩下的处理器的一半,此时可以肯定这条链里的所有处理器都是好的。
或者,越来越多的处理器都被去掉了,链的长度依旧为0,而最后只剩下一个或两个处理器没被问过,那他们一定就是好的了。
另外注意到,第一个处理器的好坏从来没被问过,仔细想想你会发现最后一个处理器的好坏也不可能被问到(一旦链长超过剩余处理器的一半,或者最后没被去掉的就只剩这一个了时,你就不问了),因此询问次数不会超过n-2。
17、一个圆盘被涂上了黑白二色,两种颜色各占一个半圆。
圆盘以一个未知的速度、按一个未知的方向旋转。
你有一种特殊的相机可以让你即时观察到圆上的一个点的颜色。
你需要多少个相机才能确定圆盘旋转的方向,答案:你可以把两个相机放在圆盘上相近的两点,然后观察哪个点先变色。
事实上,只需要一个相机就够了。
控制相机绕圆盘中心顺时针移动,观察颜色多久变一次;然后让相机以相同的速度逆时针绕着圆盘中心移动,再次观察变色的频率。
可以断定,变色频率较慢的那一次,相机的转动方向是和圆盘相同的。
18、有25匹马,速度都不同,但每匹马的速度都是定值。
现在只有5条赛道,无法计时,即每赛一场最多只能知道5匹马的相对快慢。
问最少赛几场可以找出25匹马中速度最快的前3名,(百度2008年面试题)每匹马都至少要有一次参赛的机会,所以25匹马分成5组,一开始的这5场比赛是免不了的。
接下来要找冠军也很容易,每一组的冠军在一起赛一场就行了(第6场)。
最后就是要找第2和第3名。
我们按照第6场比赛中得到的名次依次把它们在前5场比赛中所在的组命名为A、B、C、D、E。
即:A组的冠军是第 6场的第1名,B组的冠军是第6场的第2名……每一组的5匹马按照他们已经赛出的成绩从快到慢编号:A组:1,2,3,4,5B组:1,2,3,4,5C组:1,2,3,4,5D组:1,2,3,4,5E组:1,2,3,4,5从现在所得到的信息,我们可以知道哪些马已经被排除在3名以外。