Комментарии 5
Предположим, что программа никогда не создаст ноль. Тогда она войдет во все квадратные скобки и зависнет в последней. Теперь легко подобрать ленту, чтобы программа действительно никогда не создала ноль. Если она в бесконечном цикле каждый раз сдвигается, то достаточно исходную ленту заполнить достаточно большим числом. Если не сдвигается, то сделать числа, которые она за одну итерацию цикла уменьшает, достаточно малыми отрицательными, а которые она увеличивает — достаточно большими положительными.
+1
Да, все правильно. Так что ленту расчистить не удастся…
0
или
h=1;
a++;
while(h){
if(a==0){ D; a=b=1; h=0; }
if(b==0){ C; a=b=1; h=0; }
a--; b--;
}
Когда а и b могли одновременно дойти до 0, и всеравно выполнится С.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Brainfuck на ленте с ячейками неограниченной разрядности