Остановится ли? Часть II (Задача)
Условие задачи такое же, как и в предыдущей, но Вы можете использовать только язык программирования Brainf**k. Вывод программы должен содержать ровно 1 символ — ответ на вопрос («Y» или «N»).Решение: Будем теперь реализовывать проверку, является ли число n степенью двойки, на языке Brainf*ck. Первый этап — ввод числа. Так как ограничение довольно большое (), то хранить это число придется поразрядно. >>,+[>+++++++[-<------->]+>>,+]<<-<[+] Отступим перед вводом две ячейки – они нам понадобятся в дальнейшем (вместо этого могли бы использовать две ячейки с отрицательными адресами, но в интерпретаторе bff-1.0.3.1 есть ошибка: они не заполняются нулями). После каждой введенной цифры будем записывать специальную метку и оставлять пустую ячейку: Метки впоследствии помогут нам точно определять границы числа. В качестве них используем единицу. Также, так как при вводе считывается код символа, а не сама цифра, для удобства вычтем код символа '0' (48). В последнем «фиктивном» разряде будем накапливать остаток (сначала оставим ячейку пустой). Читать дальше →