1. 程式人生 > >這樣的面試題你會嗎

這樣的面試題你會嗎

               

CC  程式設計師面試指南1

   

面試題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

   

作者:楊國祥 等編著

 

ISBN 978-7-121-10359-9

 

出版日期:2010年3月出版

 

定價:49.00元

 

宣傳語

 

從企業面試的角度來梳理C/C++程式設計師的技術功底

 

以技術經理的眼光來審視對C/C++程式設計知識的掌握

 

內 容 簡 介

 

C、C++語言是IT行業的主流程式語言,也是很多程式設計師必備的軟體基本功,是軟體開發行業招聘考查的重點。本書以流行的面試題講解為主要內容,介紹了C、C++語言基本概念,包括保留字、字串、指標和引用、結構體、庫函式等各個方面的基礎知識,介紹了面向物件程式設計基本概念,包括如何實現繼承、多型和封裝等。還介紹了排序演算法及資料結構的實現,包括連結串列、堆疊、佇列和樹。此外,本書開始用兩章篇幅詳細介紹了中英文面試的注意事項、常見問題及程式設計師的職業規劃等軟體工程師的常識。最後四章詳細講解了現在流行的智力測試題。

 

本書的特點是在詳細介紹C、C++面試中常見技術問題的同時,還詳細講解了智力測試的基本方法及數學能力、推理能力和反應能力的常見測試題。本書適合正在找工作的應屆畢業生,也適合想要換工作而基礎知識不紮實或不熟悉智力測試的老程式設計師。    購買地址:中國互動出版網