我高中时听到的一个小谜题是这样的。
我们的目标是尝试找出转换函数,然后能够可靠地监护这个难题自己。
任何步骤的转换函数都是
对于所有我曾经关心测试的数字,这个收敛到4。因为“ four”中也有四个字母,所以这里会有一个无限循环; 相反,它仅被约定为结束序列的 魔法。
您的挑战是创建一段代码,这段代码将从用户那里读取一个数字,然后打印显示转换函数被重复应用的行,直到达到“四是魔术”。
具体来说:
a is b.
,其中 a 和 b 是转换中数字的数值形式。4 is magic.
。例子:
> 4
4 is magic.
> 12
12 is 6.
6 is 3.
3 is 5.
5 is 4.
4 is magic.
> 42
42 is 8.
8 is 5.
5 is 4.
4 is magic.
> 0
0 is 4.
4 is magic.
> 99
99 is 10.
10 is 3.
3 is 5.
5 is 4.
4 is magic.
获胜者是 根据源代码字符数提交的最短提交也是 正确。
您还可以尝试编写代码的一个版本,该版本打印出转换函数的每个应用程序的数字的英文名称。原始输入仍然是数字,但是输出行应该有数字的单词形式。
一些澄清:
Nine is four. Four is magic.
,这个词能出现在两边ninety-nine
是可以的,ninety nine
是可以的,ninetynine
是不可以的。我正在考虑这些单独的分类奖金竞争方面的挑战,所以如果你去这一点,不要担心你的代码比数字版本更长。
请随意为每个版本提交一个解决方案。