脑干-680
在此处进行测试:ideone.com/Wi9ftB
>>>++++[>+++++++++[>+++[<<<<+<+>>>>>-]<<<+<<<+<+>>>>>>-]<-]+<++++++++<+++<---------<++++++++
++++<----<++++++++++<+++[>>>+.>>>.<<<<.>>>>>>[>[<<<<<<--------.-.>>>.<<<<.>+..<.>>>.>-----.<
------------.+++++++++.+++.------------.++++++++.++++>+++++.<<<<.>.+.>>>>->>-]+<<+>-]+<[<<<<
+.>>>.<<<<.>+.<.>>>.>-----.<<.>---.+++.<.>----.++++>+++++.<<<<.>+.>>>>-]<<<<<.>>>.>-----.<<.
>---.+++.<.>----.<<<.>>>+++++++.---.<.>----.++++>+++++.<<<<<.<-]>[>>++++<<-]>>---.[-]<[>+<-]
>>++.>>-----.<+++.<.<.>++.>---.-..<------.<.>>++++.---.<++.>----.<<.>--.>+++++++.---.++++++.
-------.<+++.<.>>++++++.<++++.---.<.>--.>--------.+++.<.>----.<<.>>+++++++++.-----.-.-----.-
-.+.>[>+++<-]>-.<<<---[>>+<<--]>>--.
正如我所承诺的,这是一个更好的版本。我的大脑感觉就像..哦,那是这个名字的来历。
说明:(因为它无法维护,我不想忘记它的工作原理)
首先,您必须选择最佳的数据布局来应对这一挑战。我想出了
-4 outmost loop
-3 newline char
-2 space
-1 numbers
1 lowercase #1
2 lowercase #2
3 comma, apostrophe, period
4 condition (outmost loop < 3)
5 inner loop
6 second inner loop
我们必须相信,这是最佳选择,除非会有太多的移位(这种情况下您必须重新排列布局)
之后,我使用4x9x3循环来设置换行符,数字,两个小写字母和逗号的起始值。(所有较小的ascii代码都得到4x9 = 36,而两个小写字母得到4x9x3 = 108,然后我加减了一些就得到了它们的真实价值)
预设完成后,代码进入最外循环,循环3次。我用伪代码解释它。
for 3 to 1 where i = numbers
print '++i, '
while inner_loop != 0 # this is true after the first loop
while second_inner_loop != 0 # and this is true after the second
print '10, 11 o'clock, 12' # prints the difference
condition = 0 # it prevents the printing below
second_inner_loop += 1
inner_loop += 1
while condition != 0
print '++i, ++i o'clock, ++i'
print ' o'clock rock,\n'
完成本节后,我只需要打印最后一行。但是我们必须在不使用太多字符的情况下生成大写字母W。此时,我们在这里:
Address Value Pointer
-4 0 <--
-3 10
-2 32
-1 50
1 99
2 111
3 44
因此我将[-3]放在[-1]上四次,然后减去3以得到87(W):>[>>++++<<-]>>---.
然后将其擦除[-]
并将[-2]移到该位置[-1],这样空格将接近小写字母。<[>+<-]
之后,它仅打印字母。小写字母#1用于下部97-107,小写字母#2用于上述区域。