程序员面试宝典_第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次赛跑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值