我时不时地会给我的朋友和同事一些难题。我把这些称为咖啡时间的挑战。题目被设计成很小的,但在短暂休息时要反复考虑的题目。 这些都是典型的不难的题目,并且通常都有多种解决方案。有时,人们用铅笔、纸和数学首要原则来解决这些问题。此外,人们也会通过写正则表达式、 LINQ、Perl或Python脚本来解决*。解决方式有时优雅,有时用蛮力,这里并没有所谓正确或错误的方法,只要得到的是一个正确的答案。 *我喜欢使用VB6,只是因为我能够用这个! 我尽量选择不涉及聪明“陷阱”或“技巧”的难题。这类型的题目对于那些知晓其中秘密的人而言是微不足道的,同时再学习其中的技巧时,也给人留下失望的感觉。选择的这些难题都是可自描述的,不需要外界知识就能完成。 一个好的咖啡时间的挑战是,你需要去找的东西是立即可以理解的,而你面临的挑战是如何找到这个答案。 其中有些题目是我自己想出来的,但许多都不是,大部分是我从自己看到的一些想法中受到启发或复制而来的。这些题目在我的朋友和同事间颇为流行,因此,我想在我的博客上分享一些。 以下是精选的我最近的咖啡时间的挑战。对于其中的一些题目,我提供了提示,同时,所有题目我都给出了解决方案。 我提供了解决方案,因此如果你试图重新解决,你就可以来验证答案,不过我没有提供任何代码。解决这些难题的乐趣就在于写代码,而不是答案。这些乐趣不是来自得到了正确的答案,而是来自你能够写代码或脚本来得到正确的答案。 我并不是说这些都是很好的编程面试题,但我会说,如果你不能写代码来解决类似下面的那些难题,你应该认真考虑转行了:) 顺便说一句,你知道你一生花了多少钱在咖啡上吗?
1) 两基数挑战:找到三个数X、Y、Z,使以10为基数的XYZ,等于以9为基数的ZYX。 下方是提示:(文字颜色为白色,选中下一行即可查看)
2) 一百万挑战:将 1,000,000 写成两个数的乘积,两个数都不包含零。
3) 最大的数 挑战:用数字0-9 (共10个数字)来创建两个数字。当这两个数相乘时,能得到的最大结果是多少?
4) 恰好1/3挑战:将数字 1-9 排列成一个值,恰好等于1/3的简分数。没有其他数学符号,只是连接部分一些数字做分子,一些数字做分母。
5) 三个骰子挑战:摇三个骰子,将得到的三个数相乘。结果是奇数的概率是多少?
6) Word文档挑战:我打开一个Word文档,然后输入1-10000
的所有数字,用空格分隔(我没有使用任何“数千”标点符号,只是原始数据)。然后,我女儿过来使用搜索和替换,并将所有数字“0”替换为空格。如果我现在
计算文档中所有数字的总和,那会是多少?(任何被一个或多个空格分隔的数都是一个独特的数)
7) 腿挑战:一个房间里混杂有人和狗。里面有72个头 ,200条腿。有多少只狗在这个房间里?(没有诡计,没有染色体异常,没有残疾……)
8) 一,二,三挑战:只使用一个1,一个2和一个3(没有拼接的数字)及任何组合你想要的数学符号(加、减、乘、除、括号、指数、阶乘、平方根……)。写出一个方程,使其结果为19。
9) 一,七挑战:如上题,如何只使用一个1和一个7使方程式结果为71?(同样,没有拼接的数字,或者说这样是微不足道的!) 10) 桶挑战:将数字1-13分别放入三个桶中,满足任何桶中任意两个数的差与这两个数不在同一个桶中。(例如,如果将数字5和7放入一个桶中,那么不能将数字2放入同一个桶中)
11) 积与和挑战:写下1到65,502以内的所有整数。从中选择两个数字,将其相乘得到一个乘积。划掉这两个数字,将余下的65,500个数字进行求和,得到的结果与乘积相同。应该选择哪两个数字?
12) 相邻的平方数挑战:排列整数1-17(包含17),使得相邻的两个数之和是一个完美的平方数。如14, 2, 7 …(第一个数和最后一个数没有形成环)
13) 有多少挑战:ABCDEFGHIJ是一个10位数字的号码。所有的数字都是不同的。如果11111能整除这个10位数,存在多少个这样可能的数ABCDEFGHIJ?
14)倒数挑战:寻找6个不同的整数:A, B, C, D, E, F。这6个数的倒数之和正好等于1。如: 1/A + 1/B + … 1/F = 1
15) 有趣的风扇挑战:你正在帮一个出门度假的朋友看守房子。在一个房间里,你拉一个风扇的链条,当它没有响应时,你意识到这个房子暂时没有电。不幸的是,你现在要离开好几天。 你知道在你拉链条之前,风扇处于“关”的档位,连续地拉链条会使风扇循环的通过剩余的设置档位(“关”、“高”、“中”等)。你不知道这里有多少个设置档位,但你能确定不会超过四个。 如何能确保在电力恢复时,电扇处于“关”的档位? 下方是提示:(文字颜色为白色,选中下一行即可查看)
16) LED时钟挑战:你在一个完全黑暗的房间里。房间里唯一的光线来自一个旧的LED数字闹钟(屏幕显示为四个七段)。时钟显示为HH:MM(没有秒)。时钟被设置为以24小时制格式显示时间,并且如果不使用,前导数字为空。从房间最暗到最亮,这期间有多少时间? 下方是提示:(文字颜色为白色,选中下一行即可查看)
17) 使用所有数字挑战:寻找一个五位数,其中所有的数字都不相同且不为零。使得这个五位数等于这五个数字的所有三位数组合之和。即ABCDE等于ABC + ABD + ABE + BCA + CBA + BDA + DBA + … 等。 下方是提示:(文字颜色为白色,选中下一行即可查看)
18) 使用计算器按钮挑战:我的女儿刚把橙汁泼在我的科学计算器上。数字键0-9和基本运 算键+ – * /都卡住了(不工作)。幸运的是,所有的科学运算键(三角函数、幂、倒数、指数、对数、根、阶乘……)都能使用。当前屏幕显示为“0”。如何使用按键,使 屏幕显示“1”,然后按下按钮,将显示转换为“2”,最后显示“3”? 下方是提示:(文字颜色为白色,选中下一行即可查看)
19) 使用多个数字2挑战:使用多个数字,有的容易,有的难。从中加入数学符号(阶乘、加、减、除、乘、平方根、三角函数、对数、小数点、指数……)来获得所要的结果。允许将数字拼接在一起。
20) 填池挑战:如果使用红色软管将水填满游泳池,这需要8个半小时。如果同时使用红色软管和蓝色软管来将水填满游泳池,只需要5小时15分钟。如果只使用蓝色软管,需要多长时间能将水填满游泳池?
21) 开始和结束挑战:寻找一个最佳的以6结尾的自然数,如果将该数结尾的6去掉并放在剩余数的最前面,使得到的新数字是原数字的4倍大。 |