面试逻辑题

article/2025/8/28 19:59:37

逻辑题目

逻辑题目现在也是面试中常考的题目,也不清楚面试出这种题目的意义,可能就是考察面试人员是否逻辑清晰. 这种题目没有什么好的方法,除非你见过原题,否则,只能根据所给出的条件慢慢分析,尽量不要用常规思路,希望大家要跳跃思维. 如果实在不行就给出一种解法,可能不是最优的,至少表示我们有逻辑.

1. 猜数字

题目:
两人玩游戏,在脑门上贴数字(正整数>=1),只看见对方的,看不见自己的,而且两人的数字相差1.

以下是两人的对话:
A:我不知道
B:我也不知道
A:我知道了
B:我也知道了
问A头上的字是多少,B头上的字是多少. 

解析: 只看见对方的,看不见自己的.

  1. 假设A头上的数字是x(x>=1); B头上的数字是y(y>=1).
  2. 条件1, A看到B头上的y,说不知道自己的是多少.
    确定y>=2, 这样的话x可以取两个值y+1,和y-1.
  3. 条件2: B看到x后,说我也不知道,同理可以确定,x>=2, y取值是x-1和x+1.
  4. 条件3, A说我知道了, 因为A的头上x取值是y-1和y+1, 尽然A说自己知道了, 肯定要排除y-1和y+1的其中的一个,现在有 x>=2, y>=2, 只有y=2的时候,y-1=1, 此时x只能是y+1=2, 如果x=1, B就可以直接知道自己的是2, A确定自己是3,之后,
  5. 条件4, B说他也知道了, A是3, B是2和4,只有自己是2的时候,A才可能知道自己是3.

2. 握手

题目:
五队夫妇甲、乙、丙、丁、戊举行家庭聚会,每一个人都可能和其他人握手,但夫妇之间绝对不握手,聚会结束时,甲先生问其他人: 各握了几次手?
得到的答案是: 0、1、2、3、4、5、6、7、8,试问:甲太太握了几次手? 确定一点每一对夫妇一定会有一个人和其他夫妇握手.

解析:
每一对夫妇一定会有一个人和其他夫妇握手. 所有一对夫妇握手的次数和一定是8.
记0、1…8这9个人分别为A0、A1…A8。
首先,A8和A0是夫妇。因为A0没有和其他任何人握手,而A8握了别家的所有人的手。
继续推导,A1和A7是夫妇。因为A1已经和A8握过1次手,A7必须和除了A0和自己配偶以外的所有人握手,因此,A1和A7只能是夫妇。
同理,A2和A6是夫妇,A3和A5是夫妇,
最后,A4和甲是夫妇。题目中4只出现一次,因而甲和甲的夫人都握了4次手。

3. 找出毒药

题目:
实验室里有8瓶饮料,已知其中有且仅有一瓶有毒,小白鼠喝了有毒的饮料后,将会在24小时后毒发身亡。实验室的小李需要在24小时后知道有毒的饮料是哪瓶,他可以使用小白鼠试喝饮料,请问,小李最少需要用几只小白鼠试喝饮料?

解析:

将8个瓶子进行如下编码:
(000)_2=0
(001)_2=1
(010)_2=2
(011)_2=3
(100)_2=4
(101)_2=5
(110)_2=6
(111)_2=7
编码后的0/1位表示一个老鼠,0-7表示8个瓶子。按照3个二进制位中每位是否为1分类,即最低位为1的1、3、5、7号瓶子的药混起来给老鼠1吃,次低位为1的2、3、6、7号瓶子的药混起来给老鼠2吃,最高位为1的4、5、6、7号瓶子的药混起来给老鼠3吃.
24小时后,哪个老鼠死了,相应的位标为1。如最低老鼠1死了、次低老鼠2死了、最高老鼠3没死,那么就是011=5号瓶子有毒。
即:n只老鼠可以最多检验2^n个瓶子。所有8个饮料最多用三个小白鼠.

4. 坏鸡蛋

题目: 有十二个鸡蛋,有一个是坏的(重量与其余鸡蛋不同)请问用天平最少称几次,才能称出哪个鸡蛋是坏的?

解析
题目中没有说明坏的蛋是比好的蛋重还是轻。本题可以将鸡蛋分成三份,每份四只。为表述方便,将鸡蛋编号为1到12。
第一次,取1234放在天平的左端,5678放在天平的右端。天平有两种情况,平衡或不平衡。
1)先分析天平平衡的情况:若平,则重量不同的蛋在剩下的4个中。
第二次用天平,任意取3个1到8号中的蛋放在天平的左端,从9到12号蛋中任意取3个(例如9,10,11)放在另右端,又有两种情况,平衡或不平衡
若平衡,则12号蛋为重量不同的蛋,第三次用天平,把12号蛋和其他任意一蛋比较,可以知道是轻还是重.
若不平衡,则可知重量不同的蛋在9,10,11这3个蛋中,并且可以知道他比其他蛋重还是轻,第三次用天平,任意取其中2蛋(例如9,10)放在天平两端,若平衡,则剩下的蛋(11号蛋)为要找的蛋,若不平衡,根据前面判断的该蛋是比较轻还是重可以判断天平上的其中一个蛋为要找的蛋.
2)下面分析第一次天平不平衡的情况。那么有左端重或者右端重两种情况,不妨假设左端重(如果是右端重也是一样的)。
现在第二次用天平,从左端任意拿下3个蛋(例如123),从右端拿3个蛋(例如567)放到左端,再从第一次称时剩下的4个蛋中任意拿3个(例如9,10,11)到右端,这时天平会出现3种情况:a)左端重,b)平衡,c)右端重。我们一个一个来分析。
a)左端重,那么要找的蛋肯定是4号蛋或者8号蛋。第三次用天平,把其中一蛋(例如4号蛋)放在天平左端,任意取其余10个蛋中的一个蛋放在右端,又有3种情况:
一)若平衡,则8号蛋为要找的蛋,并且根据第二次用天平的结果,可知比其余蛋轻。
二)若左端重,则4号蛋为要找的蛋,并且比其余蛋重。
三)若右端重,则4号蛋为要找的蛋,并且比其余蛋轻。
b)平衡,那么要找的蛋在从左端拿下的三个蛋(1,2,3)中,由于第一次用天平左端重,所以可知这个蛋比其余的蛋重,接下了来的分析和前面的一样,不再重复。
c)右端重,那么要找的蛋在从右端移到左端的3个蛋(5,6,7)中,并且由天平第一次左端重,第二次右端重可知,该蛋比其他蛋轻,接下来的分析同前面一样。
所以,需要称重三次。

5. 测半径

题目: 一个球、一把长度大约是球的直径2/3长度的直尺.你怎样测出球的半径?

解析:
在这里插入图片描述

6. 过河

题目: 有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电筒,并且同时最多只能两个人一起过桥. 请问,最短需要几分钟四人都能过桥?

解析:

A: 1
B: 2
C: 5
D: 10
  1. AB过去(花费2分钟),A回来(花费1分钟),共1+2=3
  2. CD过去,让花费时间相近的人一起走,可以降低时间的浪费(花费10分钟), B回来(花费2分钟),共10+2=12
  3. AB一起过去(花费2分钟),ABCD全部过来共花费3+12+2=17分钟.

7. 称石头

题目: 给你8颗小石头和一架天平,其中有7颗石头重量一样,另外一个比这7颗略重。请问在最坏情况下,最少要称重几次,才能把这颗较重的石头找出来?

解析:

分为332.进行称重

首先任取8个石子中的6个进行称重,天平两边都是3个石子.

  1. 如果重量相等
    再称剩下的两个石子即可找出重的.(2次)
  2. 如果不相等.
    取较重的一边的任意2个称重,如果相等则剩下的1个是重的,如不相等则较重的一个是要找的石子.(2次)

最少两次称重可以找出重的石头.

8. 倒水

题目: 假设有一个池塘,里面有无穷多的水. 现有2个空水壶,容积分别为5升和6升. 问题是如何只用这2个水壶从池塘里取得3升的水.

解析:

  1. 6升容器装满水, 将水把5升容器倒满, 则6升容器中剩下1升水.
  2. 清空5升容器,并将6升容器中的1升水倒入5升容器中.
  3. 6升容器装满水, 将水把5升容器倒满, 则6升容器中剩下2升水.
  4. 清空5升容器,并将6升容器中的2升水倒入5升容器中.
  5. 6升容器装满水, 将水把5升容器倒满, 则6升容器中剩下3升水.

9. 绳子时间

题目: 烧一根不均匀的绳子要用一个小时,如何用它来判断半个小时? 烧一根不均匀的绳子,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳子的方法来计时45分钟呢?:

解析:
1. 如何判断半个小时
将根绳子两头同时点燃,绳子全部烧完,就是半个小时.
2. 如何计时45分钟,
选择使用两个绳子A和B,将绳子A两头点燃,绳子B一头点燃.
当绳子A烧完已经过去30分钟,此时点燃绳子B的另一端,直到绳子B烧完一共是45分钟.

10. 植树

题目: 怎么样种植4棵树木,使其中任意两棵树的距离相等?

解析: 
从三维空间考虑,画出一个空间正四面体,使其所有的边的长度相同.

在这里插入图片描述

参考(copy)

  1. https://blog.csdn.net/linjcai/article/details/80868385
  2. https://www.julyedu.com/question/select/kp_id/1
  3. https://www.cnblogs.com/pang951189/p/7439670.html

http://chatgpt.dhexx.cn/article/NIdCGBYo.shtml

相关文章

面试常见逻辑题小整理

题一、 1 1 1 2 1 1 2 1 1 1 1 1 2 2 1 下一行是什么? 答案: 312211 题二、 (1)烧一根不均匀的绳要用一个小时,如何用它来判断半个小时? (2)烧一根不均匀的绳,从头烧…

二维vector数组初始化方法

在用devcpp编译程序时发现,二维vector数组如果只定义的话,不指定元素个数也不进行初始化的时候会导致编译出错。 通常情况下,可以只提供vector对象容纳的元素数量而略去初始值。此时库会创建一个值初始化的元素初值,并把它赋给容器…

【vector常用的6种初始化方法】

文章目录 一二三四五六 一 最常用,此时,vector为空, size为0,表明容器中没有元素,而且 capacity 也返回 0,意味着还没有分配内存空间。这种初始化方式适用于元素个数未知,需要在程序中动态添加…

vector的初始化和遍历

这里只说明常用的vector初始化的方式。一般vector的初始化我还是比较习惯于像数组一样的初始化方式。一个一个赋值&#xff0c;或者用花括号的初始化。下面用一个程序来说明&#xff1a; #include "stdafx.h"#include <vector>#include <iostream.h>usi…

c++ vector 初始化_C++--vector()的用法

vector()的用法 概念 vector 是向量类型&#xff0c;它可以容纳许多类型的数据&#xff0c;如若干个整数&#xff0c;所以称其为容器。vector 是C STL的一个重要成员&#xff0c;使用它时需要包含头文件&#xff1a; #include<vector>;一、vector的初始化 (1) vector&l…

C++中 std::vector 的6种初始化方法

1.vector<int> list1; 默认初始化&#xff0c;最常用 此时&#xff0c;vector为空&#xff0c; size为0&#xff0c;表明容器中没有元素&#xff0c;而且 capacity 也返回 0&#xff0c;意味着还没有分配内存空间。 这种初始化方式适用于元素个数未知&#xff0c;需要在…

怎样初始化二维vector

二维vector的初始化方法总结 初始化一个 二维vector,行M,列N学会用大括号初始化二维数组初始化一个 二维vector,行M,列不固定初始化一个二维vector,行列都不固定注意初始化二维vector为空时的情况leetcode例题1leetcode例题2 以定义一个二维整形数组并初始化为例&#xff1a; …

c++之vector 及 二维容器vector<vector<int>>初始化方法 及 三维数组初始化

C二维容器vector<vector>初始化方法解析 遇到的问题&#xff1a; 在解决“求最大字串”问题时想到了用二位数组vector<vector<int>> table&#xff0c;但是不知道怎么对其进行初始化&#xff08;初始化时指定二维容器的大小&#xff09;,于是网上搜索一番&a…

打算自学一些编程,想兼职程序员打零工,想问问现在哪个程序员兼职平台单子简单,不考察接单人学历?

兼职平台接单&#xff0c;都不查学历。 等你具备最基本的可以接单的技术能力时&#xff0c;找个技术工作&#xff0c;随随便便一份都能有2000以上。但是&#xff0c;自己接单&#xff1f;实不相瞒&#xff0c;会饿死的。没有什么钱是从一开始就坐在家里轻轻松松能赚到的。除非…

有哪些适合程序员的兼职?

前言 程序员兼职的方式有多种&#xff0c;在回答题主这个问题之前&#xff0c;我们先来了解一下当前互联网行业程序员为什么会选择兼职。 为什么程序员想要兼职&#xff1f; 在别人眼中程序员那是一个高薪的职业&#xff0c;近些年来&#xff0c;越来越多的程序员想在工作之…

不得不说,这19个程序员兼职平台让我1年收入60w

关于程序员接私活&#xff0c;社会各界说法不一。 按我的观点来说&#xff0c;如果你确实急用钱&#xff0c;价格又合适&#xff0c;那就去做。 如果不怎么缺钱&#xff0c;那就接私活之前要好好考虑。 私活的钱不好挣是一个方面&#xff0c;更重要的是如果你把做私活的时间花在…

程序员兼职十大网站

前言 今天给大家介绍几个接私活的网站&#xff0c;接私活比较辛苦&#xff0c;如果弄不好的话&#xff0c;就是纯体力的劳动&#xff0c;大家也可以尝试做兼职远程开发。需要挣个生活费的小伙伴们&#xff0c;或者在校学生想锻炼自己的&#xff0c;可以去尝试一下。以下网站仅供…

各大程序员兼职平台靠谱嘛?这一篇文章就够了

搜索”程序员兼职“&#xff0c;能搜索到一堆营销软文&#xff0c;无非也就是你抄我&#xff0c;我抄你&#xff0c;换换顺序&#xff0c;今天我们不光谈优点&#xff0c;特点&#xff0c;还谈谈缺点&#xff0c;和大家关心的服务费问题&#xff0c;让大家看看到底哪个平台靠谱…

程序员去哪接私活?分享10个兼职平台,人已赚麻

你们当程序员不会都拿着几千、万把块钱的死工资吧&#xff0c;今天为大家分享一些可以接私单的平台&#xff0c;我反正已经赚麻了。 如果你的工作相对没那么费时间&#xff0c;可以空闲的时候去接点私活。或者是还没有找工作之前&#xff0c;可以通过一些平台接一些兼职&#…

Java程序员兼职平台推荐

有不少程序员兄弟时不时会私信问我&#xff0c;说自己是Java程序员&#xff0c;下班后或者是周六周末想要自己做点事情&#xff0c;有不有合适的Java兼职平台&#xff0c;在这里就做一个统一的回答&#xff1a; 平台到处都有&#xff0c;你可以找这样的平台,然后这样: 也可以找…

19个程序员兼职平台

关于程序员接私活&#xff0c;社会各界说法不一。 按我的观点来说&#xff0c;如果你确实急用钱&#xff0c;价格又合适&#xff0c;那就去做。 如果不怎么缺钱&#xff0c;那就接私活之前要好好考虑。 私活的钱不好挣是一个方面&#xff0c;更重要的是如果你把做私活的时间…

程序员兼职网站大全

在网上收集整理了一些程序员兼职网站&#xff0c;国内外都有&#xff0c;方便大家查阅使用。 一、国内垂直众包平台 1、猿急送-程序员兼职平台&#xff1a;https://www.yuanjisong.com/ 猿急送是于15年成立&#xff0c;国内起步很早的垂直众包平台&#xff0c;目前提供的兼职…

13个最靠谱的程序员兼职平台 想接私活的赶紧看过来

作为程序员&#xff0c;你有没有想过做些兼职&#xff0c;让自己的收入翻倍&#xff1f;有没有疑惑过身边的同事是从哪里接到那些私活的&#xff1f; 看完这篇文章你就能找到答案&#xff01; 其实网上有不少给程序员提供兼职的平台&#xff0c;老K根据自己和身边朋友的经验&a…

程序员兼职接私活平台大全,兼职也能月薪上万

前言 PS&#xff1a;如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 &#x1f449;[[CSDN大礼包&#xff1a;《python兼职资源&全套学习资料》免费分享]]&#xff08;安全链接&#xff0c;放心点击&#xff09; 根据我们的经验&#xff0c;程序员兼职主要分为…

10个程序员可以接私活的平台和一些建议,兼职必看

今天为大家分享一些可以接私单的平台&#xff0c;相信大家学习编程未来是希望成为一个软件工程师或者码农&#xff0c;找到好的工作&#xff0c;有好的发展。 但是在还没有找工作之前&#xff0c;大家可以通过一些平台接一些兼职&#xff0c;一来能够赚钱&#xff0c;在主页保…