Что не так с моей программой для начинающих Brainfuck?

Я работал над этой проблемой программирования: http://www.codeabbey.com/index/task_view/summing-up

Который в основном заявляет:

Input data has two values A and B in the single line.
Output should have the sum A+B printed into it.
Additionally after the stop the program should have values A, B, A+B in the cells 0, 1 and 2 respectively.

Например, ввод будет выглядеть так:

9 26

Теперь, я думаю, что я неправильно понимаю проблему или решение, потому что я считаю, что решение должно быть 9 26 35 где 9, 26 и 35 находятся в своих собственных клетках.

Мое решение возвращается 9 26 35 и я верю в правильные ячейки (0,1 и 2 с уважением), но я получаю неправильный ответ. Может кто-нибудь, пожалуйста, посмотрите на проблему и мой код и скажите мне, где я иду не так?

Код:

;:>;:><[-<+>]<:

2 ответа

Похоже, что выход должен иметь только A+B напечатано, а не A, B, а также A+B, как вы делаете с :,

И ваш результат, кажется, будет иметь A+B в ячейке 0 и 0 в ячейке 1 (по сути, то же самое, что и пример кода).

>< просто отменяется.

Я попытался подключить это к паре онлайн-переводчиков. Здесь есть один:

http://copy.sh/brainfuck/

и еще один здесь:

http://esoteric.sange.fi/brainfuck/impl/interp/i.html

В обоих случаях мне нужно было немного изменить свой набор символов ->: становится. а также; становится,

Выход из обоих был

    9 Y

Обратите внимание, что 35 - 9 = 24, а Y - 24-я буква алфавита. Я думаю, что вы выводите число "35" и интерпретируете его как букву.

Я бы попробовал изменить программу так, чтобы вы выводили буквально однозначные цифры ответа - т.е. выведите 3, затем выведите 5 вместо числового "35" (но оставьте числовое значение в ячейке 2 в конце). Другими словами, ваш текстовый вывод должен быть отформатированной версией значений в памяти, а не просто выводить числовые значения напрямую.

Другие вопросы по тегам