关闭

这样的面试题你会吗

标签: 面试测试出版编程数据结构语言
24317人阅读 评论(65) 收藏 举报

CC  程序员面试指南1

本题节选自《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。

clip_image002 clip_image004

图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。

clip_image006 clip_image008

图12.3 三对夫妇及史密斯夫人的握手次数 图12.4 四对夫妇中一对夫妇的握手情况

(4)去掉夫妇B后(即假设夫妇B没有参加聚会)其余五人的握手次数分配情况如下图12.5所示。

假设G为史密斯太太,则斯密斯太太与其他两对夫妇每人握手一次,即其他4人的握手次数至少为1次,但是根据图12.5可知,C握手0次,所以假设不成立,即G不是史密斯太太,并可推知C和G是一对夫妇。去掉夫妇B后握手情况按夫妻分配可以参考图12.6。

clip_image010 clip_image012

图12.5 两对夫妇及史密斯夫人的握手次数 图12.6 三对夫妇中一对夫妇的握手情况

(5)去掉夫妇C后(即假设夫妇C没有参加聚会)其余三人的握手次数分配情况如图12.7所示。

假设F为史密斯太太,则斯密斯太太与另外一对夫妇每人握手一次,这2人的握手次数至少为1次,但是根据图12.7可知,D握手0次,所以假设不成立,即F不是史密斯太太,并可推知D和F是一对夫妇。去掉夫妇B后握手情况按夫妻分配可以参考图12.6。

clip_image014 clip_image016

图12.7 一对夫妇及史密斯夫人的握手次数 图12.8 两对夫妇中一对夫妇的握手情况

而剩下的E便是史密斯太太。根据图12.1可知她总共握了四次手。

3.答案

请在此处向右拖动鼠标:史密斯夫人握了四次手

查找这9个人中谁是史密斯太太,和查找这9个人中谁不是史密斯太太的结果是一样的。这就是排除法的实现技巧。

CC  程序员面试指南1

书名: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
想即时获取更多图书及活动资讯,赶快加入博文视点读者俱乐部 吧!

0
0
查看评论

想和你做一生这样的朋友.你愿意吗?

<br />不管发生什么事情,不要忘了我们的友谊好吗?<br /><br />哪怕你拥有了幸福的爱情,也不要忘记。<br /><br />或许你幸福的时候,不会想到我的挂念,<br /><br />或者我承认,我曾经...
  • guoyongbo001
  • guoyongbo001
  • 2010-11-09 21:18
  • 236

这样的铅笔你会削吗?

500)this.width=500;" border=0> 500)this.width=500;" border=0> 500)this.width=500;" border=0> 500)this.width=500;" bo...
  • king201210
  • king201210
  • 2013-08-28 14:32
  • 177

有这样一个包你会买吗?

              这时,小编不得不把大前研一的理论-「M型社会」给搬出来了,虽然已经被人家用到烂掉。这个 "cosplay" 成包包的笔电就是要卖给对...
  • orgthinkinginjava
  • orgthinkinginjava
  • 2008-07-23 18:08
  • 163

79 1.编写实现链表排序的一种算法。说明为什么你会选择用这样的方法?

/* 1.编写实现链表排序的一种算法。说明为什么你会选择用这样的方法? 归并排序 0(1)的辅助空间 只进行指针操作 */ #include #include #include using namespace std; //链表结构 struct ListNode { int m_nV...
  • u012605629
  • u012605629
  • 2014-10-20 22:16
  • 898

腾讯一面二面终面真题

一面题目:   1。 简单自我介绍   2。 大学期间自己做过的最成功的一件事   3。 如果遇到一个以前完全没接触过的技术,会怎么去学习   4。 接下来的学习计划是什么   5。 觉得大学里最难学的课程是什么   6。 如何统计深圳市便利店的数目,说思路 ...
  • sole_cc
  • sole_cc
  • 2015-04-21 10:48
  • 692

你以为程序员就是敲代码吗?

前言   前段时间看了淘宝技术十年,看过的人都知道,淘宝走到今天真的很不容易,确切的说一个网站越发的成熟,很不容易。没有看到这本书之前,我以为程序员就只能敲程序,软件开发真的没有那么复杂,真的就是前期需求,后期设计,再者实现,然后进行测试发布上线这样简单吗?程序员就是敲代码吗?这样想真的就...
  • zlt995768025
  • zlt995768025
  • 2016-11-22 19:33
  • 1110

JavaWeb面试题1

1.1 Ajax你以前用过么?简单介绍一下 AJAX = 异步 JavaScript 和 XML。    AJAX 是一种用于创建快速动态网页的技术。 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下...
  • qq_29945661
  • qq_29945661
  • 2017-02-23 18:20
  • 199

你真的会php吗?

今天来讨论一道php代码审计的题,这是一道实验吧的题,链接: http://ctf5.shiyanbar.com/web/PHP/index.php 。 首先我们点开链接,并且查看源代码, 发现什么都没有,这时候我们想,我们想源码可能在服务器端,我们用burpsuit抓个包,发给Reapea...
  • JBlock
  • JBlock
  • 2017-12-07 20:31
  • 783

怎样编写一个程序,把一个有序整数数组放到二叉树中? 编写实现链表排序的一种算法。说明为什么你会选择用这样的方法?

1.递归,把数组的中间元素作为二叉树的跟,然后递归地对左右子数组进行操作。2.我选择插入排序
  • tianqio
  • tianqio
  • 2007-10-17 19:41
  • 4688

neuq oj 1019: 求和again 并非求和题C++

1019: 求和again 时间限制: 5 Sec  内存限制: 128 MB 提交: 617  解决: 84 [提交][状态][讨论版] 题目描述 在1011题中大家已经解决了谷学长的疑问,成...
  • youyagaozitai
  • youyagaozitai
  • 2016-02-15 00:14
  • 551
    个人资料
    • 访问:3930754次
    • 积分:56552
    • 等级:
    • 排名:第57名
    • 原创:1462篇
    • 转载:83篇
    • 译文:1篇
    • 评论:3786条
    博客专栏
    文章存档
    最新评论