软件智力题

来源:互联网 发布:php ftp上传大文件 编辑:程序博客网 时间:2024/06/05 02:26


1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如
何用烧绳的方法来计时一个小时十五分钟呢?
答案:三根绳,第一根点燃两端,第二根点燃一端,第三根不点第一根绳烧完(30分钟)后,
点燃第二根绳的另一端,第二根绳烧完(45分钟)后,点燃第三根绳子两端,第三根绳烧
完(1小时15分)后,计时完成
2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多
少个就可以确定你肯定有两个同一颜色的果冻?
答案:根据抽屉原理,4个
3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均
匀,问你如何才能准确称出4公升的水?
答案:把三公升的桶注满水,倒入五公升桶里去,然后在把三公升的桶倒满,把五公升的桶给注满了倒掉,三公升桶里还有一升,把这一升倒入五公升桶里去,在注入三公升就是四公升了。
4.一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说
谎国的。诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,但不知道应该走哪
条路,需要问这两个人。请问应该怎么问?
答案:问其中一人:另外一个人会说哪一条路是通往诚实国的?回答者所指的那条路必然是通
往说谎国的。
5.12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个
球。13个呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)
答案:12个球:
    第一次:4,4 如果平了:那么剩下的球中取3放左边,取3个好球放右边,称:如果左边重
,那么取两个球称一下,哪个重哪个是次品,平的话第三个重,是次品,轻的话同理如果
平了,那么剩下一个次品,还可根据需要称出次品比正品轻或者重。如果不平:那么不妨
设左边重右边轻,为了便于说明,将左边4颗称为重球,右边4颗称为轻球,剩下4颗称为好
球取重球2颗,轻球2颗放在左侧,右侧放3颗好球和一颗轻球。如果左边重,称那两颗重球
,重的一个次品,平的话右边轻球次品。如果右边重,称左边两颗轻球,轻的一个次品。
如果平,称剩下两颗重球,重的一个次品,平的话剩下那颗轻球次品。
13个球:第一次:4,4,如果平了 剩5颗球用上面的方法仍旧能找出次品,只是不能知道
次品是重是轻,如果不平,同上
6.在9个点上画10条直线,要求每条直线上至少有三个点?
 o     o     o
     o o 
 o     o     o 
7.在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别
是什么时间?你怎样算出来的?
答案:23次,因为分针要转24圈,时针才能转1圈,而分针和时针重合两次之间的间隔显然>1
小时,它们有23次重合机会,每次重合中秒针有一次重合机会,所以是23次重合时间可以
对照手表求出,也可列方程求出
8.你让工人为你工作7天,回报是一根金条,这个金条平分成相连的7段,你必须在每天结
束的时候给他们一段金条。如果只允许你两次把金条弄断,你如何给你的工人付费?
答案:分成1,2,4三段,第一天给1,第二天给2取回1,第3天给1,第4天给4取回1、2,第5天
给1,第6天给2取回1,第七天给1,2

9.有一辆火车以每小时15公里的速度离开北京直奔广州,同时另一辆火车每小时20公里的
速度从广州开往北京。如果有一只鸟,以30公里每小时的速度和两辆火车同时启动,从北
京出发,碰到另一辆车后就向相反的方向返回去飞,就这样依次在两辆火车之间来回地飞
,直到两辆火车相遇。请问,这只鸟共飞行了多长的距离?
答案:求出火车相遇时间,鸟速乘以时间就是鸟飞行的距离

10,你有四个装药丸的罐子,每个药丸都有一定的重量,被污染的药丸是没被污染的药丸的
重量+1。只称量一次,如何判断哪个罐子的药被污染了?
答案:
四个罐子中分别取1,2,3,4颗药丸,称出比正常重多少,即可判断出那个罐子的药被污

11.门外三个开关分别对应室内三盏灯,线路良好,在门外控制开关时候不能看到室内灯的
情况,现在只允许进门一次,确定开关和灯的对应关系?
答案:三个开关分别:关,开,开10分钟,然后进屋,暗且凉的为开关1控制的灯,亮的为开
关2控制的灯,暗且热的为开关3控制的灯。

12.人民币为什么只有1、2、5、10的面值?
答案:因为可以用1,2,5,10组合成任何需要的货币值,日常习惯为10进制
.13.给你两颗6面色子,可以在它们各个面上刻上0-9任意一个数字,要求能够用它们拼出任
意一年中的日期数值
答案:012345 0126(9)78


 第一题 . 五个海盗抢到了100颗宝石,每一颗都一样大小和价值连城。他们决定这么分:
抽签决定自己的号码(1、2、3、4、5)首先,由1号提出分配方案,然后大家表决,当且
仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔进大海喂鲨鱼如果1号死后
,再由2号提出分配方案,然后剩下的4人进行表决,当且仅当超过半数的人同意时,按照
他的方案进行分配,否则将被扔入大海喂鲨鱼依此类推。条件:每个海盗都是很聪明的人
,都能很理智地做出判断,从而做出选择。
问题:第一个海盗提出怎样的分配方案才能使自己的收益最大化?
第二题 . 一道关于飞机加油的问题
已知:每个飞机只有一个油箱,飞机之间可以相互加油(注意是相互,没有加油机)一箱
油可供一架飞机绕地球飞半圈,问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场
,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许
中途降落,中间没有飞机场)
第三题. 汽车加油问题:一辆载油500升的汽车从A开往1000公里外的B,已知汽车每公里耗
油量为1升,A处有无穷多的油,其他任何地点都没有油,但该车可以在任何地点存放油以
备中转,问从A到B最少需要多少油
第四题. 掷杯问题
一种杯子,若在第N层被摔破,则在任何比N高的楼层均会破,若在第M层不破,则在任何比
M低的楼层均会破,给你两个这样的杯子,让你在100层高的楼层中测试,要求用最少的测
试次数找出恰巧会使杯子破碎的楼层。
第五题. 推理游戏
教授选出两个从2到9的数,把它们的和告诉学生甲,把它们的积告诉学生乙,让他们轮流
猜这两个数甲说:"我猜不出";乙说:"我猜不出";甲说:"我猜到了";乙说:"我也猜到
了"。问这两个数是多少
第六题. 病狗问题
一个住宅区内有100户人家,每户人家养一条狗,每天傍晚大家都在同一个地方遛狗。已知
这些狗中有一部分病狗,由于某种原因,狗的主人无法判断自己的狗是否是病狗,却能够
分辨其他的狗是否有病,现在,上级传来通知,要求住户处决这些病狗,并且不允许指认
他人的狗是病狗(就是只能判断自己的),过了7天之后,所有的病狗都被处决了,问,一
共有几只病狗?为什么?
第七题. U2合唱团在17分钟内得赶到演唱会场,途中必需跨过一座桥,四个人从桥的同一
端出发,你得帮助他们到达另一端,天色很暗,而他们只有一只手电筒。一次同时最多可
以有两人一起过桥,而过桥的时候必须持有手电筒,所以就得有人把手电筒带来带去,来
回桥两端。手电筒是不能用丢的方式来传递的。四个人的步行速度各不同,若两人同行则
第七题. U2合唱团在17分钟内得赶到演唱会场,途中必需跨过一座桥,四个人从桥的同一
端出发,你得帮助他们到达另一端,天色很暗,而他们只有一只手电筒。一次同时最多可
以有两人一起过桥,而过桥的时候必须持有手电筒,所以就得有人把手电筒带来带去,来
回桥两端。手电筒是不能用丢的方式来传递的。四个人的步行速度各不同,若两人同行则
以较慢者的速度为准。BONO需花1分钟过桥,EDGE需花2分钟过桥,ADAM需花5分钟过桥,LARR
Y需花10分钟过桥,他们要如何在17分钟内过桥呢?
第八题. 监狱里有100个房间,每个房间内有一囚犯。一天,监狱长说,你们狱房外有一电
灯,你们在放风时可以控制这个电灯(熄或亮)。每天只能有一个人出来放风,并且防风
是随机的。如果在有限时间内,你们中的某人能对我说:"我敢保证,现在每个人都已经至
少放过一次风了。"我就放了你们!问囚犯们要采取什么策略才能被监狱长放掉?如果采用
了这种策略,大致多久他们可以被释放?

答案:
第一题:97 0 1 2 0 或者 97 0 1 0 2 (提示:可用逆推法求出)
第二题:3架飞机5架次,飞法:ABC 3架同时起飞,1/8处,C给AB加满油,C返航,1/4处,
B给A加满油,B返航,A到达1/2处,C从机场往另一方向起飞,3/4处,C同已经空油箱的A平
分剩余油量,同时B从机场起飞,AC到7/8处同B平分剩余油量,刚好3架飞机同时返航。所
以是3架飞机5架次。
第三题:需要建立数学模型
(提示,严格证明该模型最优比较麻烦,但确实可证,大胆猜想是解题关键)题目可归结
为求数列 an=500/(2n+1) n=0,1,2,3......的和Sn什么时候大于等于1000,解得n>6,当n=
6时,S6=977.57。所以第一个中转点离起始位置距离为1000-977.57=22.43公里。所以第一
次中转之前共耗油 22.43*(2*7+1)=336.50升。此后每次中转耗油500升。所以总耗油量为
7*500+336.50=3836.50升
第四题:需要建立数学模型
题目可归结为求自然数列的和S什么时候大于等于100,解得n>13。第一个杯子可能的投掷
楼层分别为:14,27,39,50,60,69,77,84,90,95,99,100
第五题:3和4(可严格证明)
设两个数为n1,n2,n1>=n2,甲听到的数为n=n1+n2,乙听到的数为m=n1*n2
证明n1=3,n2=4是唯一解
证明:要证以上命题为真,不妨先证n=7
1)必要性:
     i) n>5 是显然的,因为n<4不可能,n=4或者n=5甲都不可能回答不知道
     ii) n>6 因为如果n=6的话,那么甲虽然不知道(不确定2+4还是3+3)但是无论是2,4
还是3,3乙都不可能说不知道(m=8或者m=9的话乙说不知道是没有道理的)
    iii) n<8 因为如果n>=8的话,就可以将n分解成 n=4+x 和 n=6+(x-2),那么m可以是4x
也可以是6(x-2)而4x=6(x-2)的必要条件是x=6即n=10,那样n又可以分解成8+2,所以总之
当n>=8时,n至少可以分解成两种不同的合数之和,这样乙说不知道的时候,甲就没有理由
马上说知道。
     以上证明了必要性
2)充分性
当n=7时,n可以分解成2+5或3+4,显然2+5不符合题意,舍去,容易判断出3+4符合题意,
m=12,证毕
于是得到n=7 m=12 n1=3 n2=4是唯一解。
第六题:7只(数学归纳法证明)
1)若只有1只病狗,因为病狗主人看不到有其他病狗,必然会知道自己的狗是病狗(前提
是一定存在病狗),所以他会在第一天把病狗处决。
2)设有k只病狗的话,会在第k天被处决,那么,如果有k+1只,病狗的主人只会看到k只病
狗,而第k天没有人处决病狗,病狗主人就会在第k+1天知道自己的狗是病狗,于是病狗在
第k+1天被处决
3)由1)2)得,若有n只病狗,必然在第n天被处决
第七题:(提示:可用图论方法解决)
BONO&EDGE过(2分),BONO将手电带回(1分),ADAM&LARRY过(10分),EDGE将手电带回
(2分),BONO&EDGE过(2分) 2+1+10+2+2=17分钟
第八题:
约定好一个人作为报告人(可以是第一个放风的人)
规则如下:
1、报告人放风的时候开灯并数开灯次数
2、其他人第一次遇到开着灯放风时,将灯关闭
3、当报告人第100次开灯的时候,去向监狱长报告,要求监狱长放人......
按照概率大约30年后(10000天)他们可以被释放
第五组无标准答案
第六组部分题参考答案:
4.
char * strcpy(char * pstrDest,const char * pstrSource)
{
      assert((pstrDest!=NULL)&&(pstrSource!=NULL));
      char * pstr=pstrDest;
      while((*(pstrDest++)=*(pstrSource++))!=''\0'');
          return pstr;
}
5.
char * strrev(char * pstr)
{
      assert(pstr!=NULL);

      char * p=pstr;
      while(*(p++)!=''\0'');
      p--;
      char tmp;
      while(p>pstr)
      {
          tmp=*p;
          *(p--)=*(pstr);
          *(pstr++)=tmp;
      }
      return pret;
}
0 0
原创粉丝点击