这样的面试题你会吗
本题节选自《C/C++程序员面试指南》一书
面试题1:斯密斯夫妇握手问题
史密斯夫妇邀请另外四对夫妇就餐,已知他们每个人都不和自己握手,不和自己的配偶握手,且不和同一个人握手一次以上。在大家见面握手寒暄后,史密斯问大家握手了几次,每个人的答案都不一样。
问:史密斯太太握手几次?
1.所涉及的知识点
· 排除法
· 分析法
2.分析问题
解决本题可用排除法,把一些无关的信息先予以排除,可以确定的问题先确定,尽可能缩小未知的范围,以便于问题的分析和解决。这种思维方式在我们的工作和生活中都是很有用处的。根据已给的条件可知:
(1)总共10个人,每个人不与自己握手,不与配偶握手,不与同一个人握手超过一次,所以每个人最多握8次手,最少0次。
(2)史密斯先生问其他9个人握了几次手,各人回答不一样,所以每个人的握手次数应为0~8次,每种不同次数有1个人。可知除了斯密斯先生外,其他9个人的握手次数,如图12.1所示。
假设I握了8次手,即I与其配偶以外的所有人都握了手;可以假设I为史密斯太太,她握了八次手,即与史密斯先生以外的每个人都握了一次手。可以推知除斯密斯夫妇外的其他三对夫妇的握手次数至少为1,与上面推断已知的A的握手次数为0冲突。所以假设不成立。并可推知握手0次的A和握手8次的I为一对夫妇。实际的握手情况按夫妻分配可以参考图12.2。
图12.1 四对夫妇及史密斯夫人的握手次数 图12.2 五对夫妇中一对夫妇的握手情况
(3)根据(2)可知A夫妇其中一人,与每个人握手一次,另外一个人没有握手。所以可以排除夫妇A,即假设夫妇A没有参加聚会,其余七人的握手次数减1,此时参加聚会的人数为史密斯夫妇和另外三对夫妻8人。除史密斯先生外,其他7人的握手次数情况如图12.3所示。
假设H为史密斯太太,则斯密斯太太与其他三对夫妇每人握手一次,即其他6人的握手次数至少为1次,但是根据图12.3可知,B握手0次,所以假设不成立,即H不是史密斯太太,并可推知B和H是一对夫妇。去掉夫妇A后握手情况按夫妻分配可以参考图12.4。
图12.3 三对夫妇及史密斯夫人的握手次数 图12.4 四对夫妇中一对夫妇的握手情况
(4)去掉夫妇B后(即假设夫妇B没有参加聚会)其余五人的握手次数分配情况如下图12.5所示。
假设G为史密斯太太,则斯密斯太太与其他两对夫妇每人握手一次,即其他4人的握手次数至少为1次,但是根据图12.5可知,C握手0次,所以假设不成立,即G不是史密斯太太,并可推知C和G是一对夫妇。去掉夫妇B后握手情况按夫妻分配可以参考图12.6。
图12.5 两对夫妇及史密斯夫人的握手次数 图12.6 三对夫妇中一对夫妇的握手情况
(5)去掉夫妇C后(即假设夫妇C没有参加聚会)其余三人的握手次数分配情况如图12.7所示。
假设F为史密斯太太,则斯密斯太太与另外一对夫妇每人握手一次,这2人的握手次数至少为1次,但是根据图12.7可知,D握手0次,所以假设不成立,即F不是史密斯太太,并可推知D和F是一对夫妇。去掉夫妇B后握手情况按夫妻分配可以参考图12.6。
图12.7 一对夫妇及史密斯夫人的握手次数 图12.8 两对夫妇中一对夫妇的握手情况
而剩下的E便是史密斯太太。根据图12.1可知她总共握了四次手。
3.答案
请在此处向右拖动鼠标:史密斯夫人握了四次手。
查找这9个人中谁是史密斯太太,和查找这9个人中谁不是史密斯太太的结果是一样的。这就是排除法的实现技巧。
书名:C/C++程序员面试指南
作者:杨国祥 等编著
ISBN 978-7-121-10359-9
出版日期:2010年3月出版
定价:49.00元
宣传语
从企业面试的角度来梳理C/C++程序员的技术功底
以技术经理的眼光来审视对C/C++编程知识的掌握
内 容 简 介
C、C++语言是IT行业的主流编程语言,也是很多程序员必备的软件基本功,是软件开发行业招聘考查的重点。本书以流行的面试题讲解为主要内容,介绍了C、C++语言基本概念,包括保留字、字符串、指针和引用、结构体、库函数等各个方面的基础知识,介绍了面向对象编程基本概念,包括如何实现继承、多态和封装等。还介绍了排序算法及数据结构的实现,包括链表、堆栈、队列和树。此外,本书开始用两章篇幅详细介绍了中英文面试的注意事项、常见问题及程序员的职业规划等软件工程师的常识。最后四章详细讲解了现在流行的智力测试题。
本书的特点是在详细介绍C、C++面试中常见技术问题的同时,还详细讲解了智力测试的基本方法及数学能力、推理能力和反应能力的常见测试题。本书适合正在找工作的应届毕业生,也适合想要换工作而基础知识不扎实或不熟悉智力测试的老程序员。
购买地址:中国互动出版网
同类书推荐:.NET程序员面试指南(含光盘1张) Java程序员面试指南
本书详细信息:http://www.broadview.com.cn/10359
更多图书信息:www.broadview.com.cn
想即时获取更多图书及活动资讯,赶快加入博文视点读者俱乐部 吧!