智力急转弯
◆1. 有一个长方形蛋糕,切掉了长方形的一块(大小和位置随意),你怎样才能直直的一刀下去,将剩下的蛋糕切成大小相等的两块?
答案:将完整的蛋糕的中心与被切掉的那块蛋糕的中心连成一条线。这个方法也适用于立方体!请注意,切掉的那块蛋糕的大小和位置是随意的,不要一心想着自己切生日蛋糕的方式,要跳出这个圈子。
◆2. 有三筐水果, 一筐装的全是苹果,第二筐装的全是橘子,第三筐是橘子与苹果混在一起。筐上的标签都是骗人的,(比如,如果标签写的是橘子,那么可以肯定筐里不会只有橘子,可能还有苹果)你的任务是拿出其中一筐,从里面只拿一只水果,然后正确写出三筐水果的标签。
提示:从标着“混合”标签的筐里拿一只水果,就可以知道另外两筐装的是什么水果了。
◆3. 你有八个球。其中一个有破损,因此比其他球轻了一些。你有一架天平用来比较这些球的重量。如果只称两次,如何找出有破损的那个球?
◆4. 为什么下水道的井盖是圆的?
提示:方形的对角线比边长!
其他答案:1圆形的井盖可以由一个人搬动,因为它可以在地上滚。2圆形的井盖不必为了架在井口上而旋转它的位置。
◆5. 美国有多少辆车?
◆6. 你让一些人为你工作了七天,你要用一根金条作为报酬。金条被分成七小块,每天给出一块。如果你只能将金条切割两次,你怎样分给这些工人?
◆7. 一列时速15英里的火车从洛杉矶出发,驶向纽约。另外一列时速20英里的火车从纽约出发,驶向洛杉矶。如果一只鸟以每小时25英里的速度飞行,在同一时间从洛杉矶出发,在两列火车之间往返飞行,到火车相遇时为止,鸟飞了多远?
提示:想想火车的相对速度。
◆8. 你有两个罐子,分别装着50个红色的玻璃球和50个蓝色的玻璃球。随意拿起一个罐子,然后从里面拿出一个玻璃球。怎样最大程度地增加让自己拿到红色球的机会?利用这种方法,拿到红色球的几率有多大?
◆9. 假设你站在镜子前,抬起左手,抬起右手,看看镜中的自己。当你抬起左手时,镜中的自己抬起的似乎是右手。可是当你仰头时,镜中的自己也在仰头,而不是低头。为什么镜子中的影像似乎颠倒了左右,却没有颠倒上下?
◆10. 你有5瓶药,每个药丸重10克,只有一瓶受到污染的药丸重量发生了变化,每个药丸重9克。给你一个天平,你怎样一次就能测出哪一瓶是受到污染的药呢?
答案:
1 给5个瓶子标上1、2、3、4、5。
2 从1号瓶中取1个药丸,2号瓶中取2个药丸,3号瓶中取3个药丸,4号瓶中取4个药丸,5号瓶中取5个药丸。
3 把它们全部放在天平上称一下重量。
4 现在用1×10+2×10+3×10+4×10+5×10的结果减去测出的重量。
5 结果就是装着被污染的药丸的瓶子号码。
◆11. 如果你有一个容量为5夸脱的水桶和一个容量为3夸脱的水桶,怎样准确地量出4夸脱的水?
◆12. 在开汽车的锁时,应该往哪个方向旋转钥匙?
◆13. 如果你可以移动50个州中的任何一个,你会挑哪个,为什么?
◆14. 有4条狗(4只蚂蚁或4个人)分别在一个广场的4个角落里。突然,它们同时以同样的速度追赶在自己顺时针方向的一个人,而且会紧追这个目标不放。它们需要多少时间才能相遇,相遇地点在哪里?
提示:它们将在广场中央相遇,所跑的距离与它们跑的路线无关。
◆15. 从空中放下两列火车,每列火车都带着降落伞,降落到一条没有尽头的笔直的铁道上。两列火车之间的距离不清楚。两列车都面向同一个方向。在落地后,降落伞掉在地上,与火车分离。两列火车都有一个微芯片,可以控制它们的运动。两个芯片是相同的。两列火车都不知道自己的位置。你需要在芯片中写入编码,让这两列火车相遇。每行编码都有一定的执行命令的时间。
你能使用以下指令(而且只能用这些指令):
MF—让火车朝前开
MB—让火车朝后开
IF(P)—如果火车旁边有降落伞,这个条件就得到了满足。
GOTO
答案:
A:MF
IF(P)
GOTO B
GOTO A
B:MF
GOTO B
解释:第一行只是让它们离开各自的降落伞。必须让它们离开自己的降落伞,这样后面的火车才能发现前面火车的降落伞,这样就满足了一个条件,它们就可以跳出起初遵守的编码。它们起初都在A这部分循环,直到后面的火车发现前面火车的降落伞,这时就转入B:并陷入B的循环。前面的火车还是没有找到降落伞,所以就不停地在A里面循环。由于每行编码都有一定的执行命令时间,完成A循环就比完成B费时,因此后面的火车(在B循环中)最终将赶上前面的火车。
运算
★链接表和数组之间的区别是什么?
★做一个链接表,你为什么要选择这样的方法?
★选择一种算法来整理出一个链接表。你为什么要选择这种方法?现在用O(n)时间来做。
★说说各种股票分类算法的优点和缺点。
★用一种算法来颠倒一个链接表的顺序。现在在不用递归式的情况下做一遍。
★用一种算法在一个循环的链接表里插入一个节点,但不得穿越链接表。
★用一种算法整理一个数组。你为什么选择这种方法?
★用一种算法使通用字符串相匹配。
★颠倒一个字符串。优化速度。优化空间。
★颠倒一个句子中的词的顺序,比如将“我叫克丽丝”转换为“克丽丝叫我”,实现速度最快,移动最少。
★找到一个子字符串。优化速度。优化空间。
★比较两个字符串,用O(n)时间和恒量空间。
★假设你有一个用1001个整数组成的数组,这些整数是任意排列的,但是你知道所有的整数都在1到1000(包括1000)之间。此外,除一个数字出现两次外,其他所有数字只出现一次。假设你只能对这个数组做一次处理,用一种算法找出重复的那个数字。如果你在运算中使用了辅助的存储方式,那么你能找到不用这种方式的算法吗?
★不用乘法或加法增加8倍。现在用同样的方法增加7倍。
应用
★如何将计算机技术应用于一幢100层高的办公大楼的电梯系统上?你怎样优化这种应用?工作日时的交通、楼层或时间等因素会对此产生怎样的影响?
★你如何对一种可以随时存在文件中或从因特网上拷贝下来的操作系统实施保护措施,
防止被非法复制?
★你如何重新设计自动取款机?
★假设我们想通过电脑来操作一台微波炉,你会开发什么样的软件来完成这个任务?
★你如何为一辆汽车设计一台咖啡机?
★ 如果你想给微软的Word系统增加点内容,你会增加什么样的内容?
★你会给只有一只手的用户设计什么样的键盘?
★你会给失聪的人设计什么样的闹钟?
头脑
★如果你有一个许多部件可以拆卸的时钟,你将它一块块拆开,但是没有记住是怎样拆的。然后你将各个零件重新组装起来,最后发现有三个重要零件没有放进去。这时你如何重新组装这个时钟?
★如果你需要学习一门新的计算机语言,你会怎样做?
★假设由你负责设计比尔·盖茨的卫生间。当然,钱不成问题,但是你不可以和比尔谈。你会怎样做?
★到目前为止,你遇到的最难回答的问题是什么?
★如果微软公司说,我们愿意投资500万美元用来开发你提出的方案。那么你会做什么?为什么?
★如果你将世界上所有的计算机制造商召集起来,告诉他们必须要做一件事,你会让他们做什么事?
★如果你在五年内会得到一笔奖金,你认为会是因为什么?关注你的成绩的人会是谁?
★你如何教自己的奶奶使用微软Excel表格系统?
★为什么当我们在任何一家宾馆打开热水龙头时,热水会马上流出来?
★你为什么想在微软工作?
★假设你回到家,进入自己的房间,打开电灯开关,可是一点反应都没有——灯没有亮。这时,你在判断问题出在哪里时,会依次采取怎样的做法?