程序员逻辑面试题及详细答案.docxVIP

  • 0
  • 0
  • 约4.05千字
  • 约 6页
  • 2026-06-02 发布于河北
  • 举报

程序员逻辑面试题及详细答案

一、基础逻辑推理(入门必考,考察思维严谨性)

题目1:灯泡开关问题

房间里有3个开关,分别控制隔壁房间的3个灯泡(开关和灯泡一一对应,无故障)。你只能进入隔壁房间一次,如何判断每个开关对应的灯泡?

详细答案

核心思路:利用灯泡“亮/灭”和“热/冷”两个属性(灯泡通电会发热,断电后热量会残留一段时间),突破“只能进入一次”的限制,步骤如下:

先打开开关1,保持通电10分钟(确保灯泡充分发热);

关闭开关1,立即打开开关2;

进入隔壁房间,观察3个灯泡的状态:

亮着的灯泡→对应开关2(只有开关2处于打开状态);

不亮但发热的灯泡→对应开关1(开关1曾打开,灯泡发热残留);

不亮且不发热的灯泡→对应开关3(从未打开过)。

补充说明:这道题考察程序员是否能跳出“单一属性(亮灭)”的思维定式,类似编程中“利用多维度特征解决问题”(如用两个变量存储不同状态)。

题目2:硬币称重问题

有12枚硬币,其中1枚是假币(假币比真币轻或重,未知),用一个无砝码的天平,最多称3次,如何找出假币,并判断假币是轻还是重?

详细答案

核心思路:分治法+状态标记,每次称重缩小假币范围,同时记录假币的轻重倾向,步骤清晰可落地(无需复杂公式):

将12枚硬币分成3组,每组4枚,标记为A组(A1-A4)、B组(B1-B4)、C组(C1-C4);

第一次称重:称

文档评论(0)

1亿VIP精品文档

相关文档