打开微信扫一扫
知命者
一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。每个人都能看到其它人帽子的颜色,却看不到自己的。主持人先让大家看看别人头上戴的是什幺帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自己一个耳光。第一次关灯,没有声音。于是再开灯,大家再看一遍,关灯时仍然鸦雀无声。一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。问有多少人戴着黑帽子?
举报
格物者
3
据说是微软的面试题
不错,回答正确
交流者
志学者
面对这样的推理,我们可以用if--else来表示:但你首先碰到一个难题,就是我们如何推理,用什么样的方法,才能把这个问题解决。其实这个可以利用我们从买衣服那里得到的道理:找出我们的条件,这是最重要的。思前想后,终于想出了我假设的条件:if(舞会中黑帽子==1) //如果舞会中只有一顶黑帽子 带黑帽子的人看到都是白帽子,肯定就知道自己是黑帽子, 预期结果:应该给自己一耳光 实际结果:没有听见声音,(呵呵,发现一bug)所以这种情况是不成立的else if(舞会中黑帽子==2)//如果舞会中只有两顶黑帽子。 带黑帽子的人应该看到别人带了一顶黑帽子,因为舞会只有两顶黑帽子,所以 自己肯定是带黑帽子的人。 预期结果:应该听见两声耳光 实际结果:没有听见耳光.else if(舞会中黑帽子==3)//如果舞会中只有三顶黑帽子 带黑帽子的人应该看到两顶黑帽子,和一堆白帽子。因为舞会只有三顶黑帽 子,所以自己肯定是带黑帽子的人。 预期结果:应该听见耳光声 实际结果:听见耳光声。(呵呵,符合情况,bug已修复)上面的这道题,据说是微软/IBM考察软件测试工程师面试题。当然还有一个死狗问题,跟这个差不多。就不祥谈了。为啥考这样的题目,经过一分析应该知道了。考察的是1.你有没有逻辑思维。2.有没有测试思维。我每次讲到C的时候,都会插入这么段小故事,目的就是让大家明白。对于选择结构而言,最重要的就是,要清楚的了解条件是什么。只有知道了条件,其他的都会水到渠成。
本版积分规则 写好了,发布 Ctrl + Enter 快速发布 回帖后跳转到最后一页