|>I|
Спробуйте в Інтернеті!
Спробуйте це перевернути!
Це працює для будь-яких входів, які не містять нульових байтів.
Пояснення
Нічого собі, я дійшов до того, як пишу це вручну ...
Повна програма є |>I|I<|
.
| Reverse the entire stack down to the EOF marker -1 (since there are no zeros in the input).
> Move one stack over to the right (which only contains zeros).
I Does nothing on zero.
| Does nothing on zero.
I Does nothing on zero.
< Move back to the initial stack.
| Reverse the input once more.
Як і у вирішенні попереднього виклику, оскільки команда центру |
нічого не робить, так і вся програма.
Зворотна програма тоді |I>|<I|
.
| Reverse the entire stack down to the EOF marker -1 (since there are no zeros in the input).
I Move the -1 one stack to the left and turn it into a +1.
> Move back to the initial stack.
| Reverse it again, but this time without the EOF marker.
< Move back to the left.
I Move the +1 back onto the initial stack and turn it into a -1 again.
| Reverse the entire stack. We now have the -1 as an EOF marker again at the bottom
and the rest of the stack has been reversed three times, i.e. one net reversal.
Цікаво, що якщо ми використовуємо цю програму зворотного ходу, але -m
на цей раз ми все ще не отримаємо робочого рішення, тож єдині додаткові байти, одержані при пропуску, - -m
це ті, які ми отримуємо від дзеркального коду.
|I<|>I|
Спробуйте в Інтернеті!
Спробуйте це перевернути!
Пояснення
Зворотна версія цієї програми є |I>|<I|
такою ж, як і вище, тому ми можемо ігнорувати це. Але невернута версія відрізняється. Оскільки <>
тепер точка в іншому напрямку, команда центру закінчує нічого не робити, тому програма стає кішкою:
| Reverse the entire stack down to the EOF marker -1 (since there are no zeros in the input).
I Move the -1 one stack to the left and turn it into a +1.
< Move another stack to the left, which contains only zeros.
| Does nothing on zero.
Таким чином, >I|
точно скасуйте першу половину програми.