程序員面試寶典_第21章_智力測試

面試例題1——經理女兒年齡問題思路:先遍歷選出滿足年齡之和爲13的所有組合,然後選取年齡之積相同的那些組合,再根據“我只有一個女兒超過5歲”這個條件選出適宜的組合。

注意:需要把“我只有一個女兒超過5歲”作爲第二條件;

#include<iostream>
using namespace std;
int main()
{
	int i,j,k;
for(i=1;i<11;i++)
{

	for(j=i;j<11;j++)
	{
	
		for(k=j;k<11;k++)
		{
		if((i+j+k)==13)
		{
		cout<<"i= "<<i<<", "<<"j= "<<j<<", "<<"k= "<<k<<", "<<"i*j*k= "<<i*j*k<<endl;
		break;
		
		}
		}
	
	
	}

}


system("pause");
return 0;
}


面試例題2——1000瓶藥水,至多1瓶劇毒,10只狗,在24小時內通過狗試藥的方式找出哪瓶藥有毒或者全部無毒(狗服完藥X小時毒發。19<X<23)

思路:將狗狗 編號爲1~10,將藥水用2進制編號,然後按照藥水第幾位爲1給相應的狗狗喂藥。

 

面試例題3——選豬問題:38只豬,選出其中3只跑得最快的,場地允許6只豬同時跑。在沒有計時器的情況下如何最快的選出最快的3只豬。

思路:將豬分爲7組,其中1~6組每組6只,第7組2只,編號爲a,b,c,d,e,f,g;

(1)第1~6組分別賽跑,將每組的第1、2、3名記下來,如a1、a2、a3,b1、b2、b3...

(2)讓a1、b1、c1、d1、e1、f1一起賽跑,假設第1名爲a1,假設第2名爲b1,假設第3名爲c1,此時a1必然爲最快的3只豬之一(只有g組的2只可能比它快);此時需要做的就是在剩下的豬(除了g組的兩隻)中找出最快的2只,首先排除掉d、e、f組,由於有可能出現a2、a3比b1快,b2比c1快的情況,因此:

(3)讓a1、b1、c1、a2、a3、b2一起賽跑、選出最快的3只

(4)讓第3步中最快的3只與g組的2只賽跑,最後選出最快的3只

共有:6+1+1+1=9次賽跑

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章