面試例題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次賽跑