首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

HW笔试逻辑题,该怎么解决

2012-02-28 
HW笔试逻辑题1,经理有3个女儿,年龄和是13岁.年龄的乘积等于经理年龄.有个员工知道经理年龄,但是不能确定他

HW笔试逻辑题
1,经理有3个女儿,年龄和是13岁.年龄的乘积等于经理年龄.有个员工知道经理年龄,但是不能确定他3个女儿都是多大.这时经理告诉他 "我只有一个女儿超过5岁 ",于是那个员工说 "哦,那我知道了 ".
问:经理的三个女儿各是多大?

2,38只猪,要选出3只跑的最快的.但场地只能允许6只同时赛跑.
问:在没有计时器的情况下,怎样可以用最快,最好的方法选出最快的3只猪?

[解决办法]
好像应该是9,2,2吧
因为6,6,1 也是36。而因为只有一个女儿大于5岁。所以是9,2,2
[解决办法]
新手试做:森子大啥鸟都有.三个孩子年龄相加之和得13的话,经理年龄最大也没超过80;
main()
{
int jl,i,j,k;
int a[]={6,7,8,9,10,11};
int b[]={1,2,3,4,5},c[]={1,2,3,4,5};

clrscr();
for(i=0;i <6;i++)
for(j=0;j <5;j++)
for(k=j;k <5;k++)
{
jl=a[i]*b[j]*c[k];
if(a[i]+b[j]+c[k]==13&&jl> 20)
printf( "jl:%d\t%d-%d-%d\n ",jl,a[i],b[j],c[k]); /* 输出经理和孩子的年龄 */
}
}

[解决办法]
2:
分7组 1-6组6个,7组2个
a:每组跑一次,排出顺序 (6次)
b:每组第一一起跑一次,分出顺序,假设1组最快,6组最慢(1次)
c:第一组的2,3,第二组的,1,2,第三组的第一,加上第7组的两个,跑一次,取前二,加上第一组的第一即为最快的3(1次)
共跑8次

[解决办法]
6 6 6 6 6 6 2 一
3 3 3 3 3 3 2 二
3 3 3 2 三
3 3 四
3 五


[解决办法]
2:两种
一、
分7组,
(1)6组为6只,1组2只。6只组的各跑一次,得到每组的第1。
(2)6次跑的第1组成一组跑一次,得到一个第1
(3)第1与剩下的一组再比一次,得到最快的。
二、
(1)选出6只跑一次,得到一个第1
(2)再从剩下的选出5只组成一组跑一次,得到一个第1
(3)重复(2)步,只到结束,得到一个最快的。
两种方法都要8次
[解决办法]
第二题:
把猪分成7组,前六组每组6只,第7组2只
前6组标记为:a,b,c,d,e,f
1.让前六组先跑,每组第一名留下假设为:a1,b1,c1,d1,e1,f1,并把每组的第二名和第三名做好标记假设为:a2(第二名),a3(第三名),b2(第二名),b3(第三名)...
2.让每组第一名(a1,b1,c1,d1,e1,f1)共6只一起跑,把前三名留下,假设为:a1(第一名),b1(第二名),c1(第三名)
3.再让a1,b1,c1,a2,a3,b2,一起跑,留下前三名
4.最后把第三步的前三名和第七组跑,留下前三名即为所求,共比赛8次

[解决办法]
1、9 2 2
2、有点像折半查找
每组6个余下2个,每次留下前3,轮次如下:
1 36 + 2
2 18 + 2
3 9 + 2
4 6
5 3
[解决办法]
1。有一个员工知道经理年龄,但是不能确定他3个女儿都是多大.这时经理告诉他 "我只有一个女儿超过5岁 ",于是那个员工说 "哦,那我知道了 ".
 这说明经理的年龄约数中至少有两个为5以上。考虑到三个女儿年龄和为13。只能为6,6,1。(因为这种情况下,才能使得员工考虑可能有两个女儿超过5岁。)
 得出经理年龄36。
36=2*2*3*3。不难得出9,2,2为符合的条件。
2。I 分6组+2
 II 6组各跑一次。记录各组前3名:a1,b1,c1  6次
 III 取与a1同组的第二第三名,记为a2,a3。
    取与b1同组的第二名,记为b2。
    取未参加跑步的2只。
    再加上b1。共6只,跑一次        7次
    得前两名。
进入讨论阶段:如第7次跑出的前两名中,第一名不为b1,则:结论得出。38只中最快三只为a1与第7次跑出的前两名。
       如第7次跑出的前两名中,第一名为b1,记第二名为d1。则需要第8次跑:取c1与d1比。取快者记为e1。得出结论。38中最快三只为a1,b1,e1。
[解决办法]
第二题
6个一组分ABCDEF六组加G组两个 每组取前三标记为A1 A2 A3......(1~6轮)
让每组第一跑 取前三 假设A1 B1 C1分别为第一二三 那DEF组全部淘汰 现在A1肯定是最快的三只之一(只有G组两个可能比它快)那么再在其余的猪里找最快的两个 所以B3和C3也没有机会了
现在只剩下A2 A3 B1 B2 C1 C2 G1 G2八只(7轮)
A2 A3 B1 C1加G组两只跑一轮 若B1或C1没能跑第一 则前两名就是八只里最快的两只 若不是则进行第9轮(8轮)
假设上一轮B1第一 则B1 B2和第8轮第二名跑 取前两名 若要最快三只猪分出名次 本轮加入A1即可(9轮)

热点排行