导航:首页 > 程序命令 > 老程序员面试题

老程序员面试题

发布时间:2025-07-28 21:02:12

1. 精选程序员面试常问的逻辑题

精选程序员面试常问的逻辑题1. 红白帽子推理

题目描述:一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。每个人都能看到其他人帽子的颜色,却看不到自己的。主持人先让大家看看别人头上戴的是什么帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自己一个耳光。第一次关灯,没有声音。于是再开灯,大家再看一遍,关灯时仍然鸦雀无声。一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。问有多少人戴着黑帽子?

答案:三个人。

拓展:N个人是黑帽子,就会在第N天,有N个人打自己一个耳光。

2. 吃药片

题目描述:有两种药片,每种有两个,一个人需要早上吃两种药片各一个,现在这四个药片混在一起了,这个人有什么方法吃?

答案:把所有的4颗药丸都切开成相等的两半,然后早上和晚上,分别吃掉每颗药丸的一半。

3. 得到指定容量的水

题目描述:一个5L,一个6L的瓶子,要得到3L的水,问什么方法?

答案:6-5=1,1L水放在5L那个瓶里面,然后再装6L水,往5L(里面已经有1L)里面倒,这样就会剩下2L水在6L里面,再把2L水放在5L里面,再装一次,不就可以6L那里到处3L水到5L里面,自己就剩下3L了。

4. 老鼠/犯人喝酒试毒

题目描述:一共1000瓶酒,其中一瓶有毒。如果一只老鼠喝了有毒的酒,会在一天之后死亡,那么如果给你一天时间,让你判定哪瓶酒有毒,至少需要几只老鼠?

答案:10只。这个需要使用二进制编码来解决,1000瓶酒至少需要10位二进制数来进行编码。然后取十只杯子分别代表这十个二进制数的十个位,分别将1000瓶酒倒入其编码为1的对应的杯子中。取十个老鼠分别喝十个杯子中的酒,一天之后,就可以根据喝哪些杯子的老鼠死掉来确定出有毒的那瓶酒的编码,从而确定哪瓶酒有毒。

拓展

5. 小球称重

题目描述:有8个小球,其中七个的重量是相同的,有一个较轻。给你一个天平,问秤几次能找出那个较轻的小球,若天平只能秤两次,又该怎么秤?

答案:第一次两边各放随机三个,如果平了,则另外一个是轻的,若不平,还有第二次,拿出那三个轻的,在两边随机放一个,就能测出哪个最轻了。

6. 飞机加油

题目描述:已知:每个飞机只有一个油箱,飞机之间可以相互加油(注意是相互,没有单独的加油机),一箱油可供一架飞机绕地球飞半圈。问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)

答案:分为3架飞机5架次和3架飞机6架次。

以上即为精选的程序员面试常问的逻辑题及其解答,希望能够帮助到大家。

2. 一道程序员面试题,设计,很难

状态0:初始状态
状态1:我是端点A
状态2:我可能是端点B
状态3:我是端点B
状态4:我是路人

消息0:初始化消息
消息1:这是来自端点A的消息,我正在寻找端点B
消息2:你的另一边还有我,你不是端点B
消息3:那么谁是端点B呢
消息4:这是来自端点B的消息
消息5:这是来自端点A的消息
消息6,路人请在下一次接到消息5时开灯,端点A请开灯

回馈,将消息发给触发当前消息的一端(谁给我的我就给谁)
转发:将消息发给触发当前消息的另一端(谁给我的我就不给谁)
广播:将消息发给两边(给两边都发送)

收到初始化消息的人将自己置为状态1,并转发消息1,
收到消息1的人将自己置为状态2,并转发消息1,回馈消息2,
收到消息2的人将分为两种:
状态1,不改变状态,并回馈消息3
状态2,将自己置为状态4,不发送消息
收到消息3的人将分为两种:
状态4,不改变状态,转发消息3
状态2,将自己置为状态3,回馈消息4
/*
至此为止,三种角色已经明确,两个端点分别是状态1和状态3,状态4是路人
*/
可能收到消息4的人分为三种:
端点A,回馈消息5
路人,转发消息4
端点B,回馈消息4
收到消息5的人分为两种:
路人,转发消息5
端点B,
/*
当端点B收到消息5的时候,端点B还正在无限发送消息4,端点A正在无限发送消息5,路人正在无限转发消息5和4
*/
此时所有路人都可能收到两种消息,4和5,端点A只会收到4端点B只会收到5
端点A收到消息5则回馈消息4
端点B收到消息4则回馈消息5
路人只负责转发

我已经尽力了,只能做到这个程序,这个是结合网络路由协议设计出来的一种通信机制,但是也只能做到目前的程度,经过我一周零散时间的考虑,想要实现同时开灯,必须在状态里边提供计数器,能给个整数就行,这样就可以通过对信号进行计数来约定时间,否则我真的想不到办法了,以上答案仅仅是一个思路,而且我认为这个题缺乏必要条件,希望对你有帮助。

阅读全文

与老程序员面试题相关的资料

热点内容
phpsetdate 浏览:255
阿里云服务器管理器 浏览:36
sha256算法java 浏览:980
深圳美女程序员 浏览:853
卖房哪个app最好2020 浏览:396
美间app怎么设计 浏览:556
循序渐进学java韩顺平 浏览:162
在哪个app可以看到自己是什么脸 浏览:161
筏板内柱子周围钢筋加密 浏览:634
java怎么编译成class 浏览:710
远程桌面云服务器知道Ip吗 浏览:456
看程序员免费网站29集 浏览:30
加密狗价值多少钱 浏览:734
招商银行app怎么预留手机号 浏览:934
编译生成文件的后缀是 浏览:871
为什么分身应用不能加密 浏览:830
华擎bios能用编程器吗 浏览:963
旧版看书APP怎么回首页 浏览:85
程序员那么可爱姜逸城喝醉酒撒娇 浏览:683
学单片机的app 浏览:286