Форум » Выполнение и анализ алгоритмов для исполнителей » (№ 5723) (А. Рогов) » Ответить

(№ 5723) (А. Рогов)

timson_00: Добрый день. При решении данной задачи выводит ответ n = 1, т.е. из строки 10 получается по итогу программы 000, 3-х значное число. Но в ответе указано 50. В чём ошибка? Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки символов. 1. заменить (v, w) 2. нашлось (v) Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Дана программа для исполнителя Редактор: НАЧАЛО ПОКА нашлось(10) ИЛИ нашлось(1) ЕСЛИ нашлось(10) ТО заменить(10, 001) ИНАЧЕ ЕСЛИ нашлось(1) ТО заменить(1, 0) КОНЕЦ ЕСЛИ КОНЕЦ ЕСЛИ КОНЕЦ ПОКА КОНЕЦ На вход приведённой программы поступает строка, состоящая из 1 и следующими за ней n нулями(n - натуральное число). Определите, при каком минимальном значении n длина получившейся строки будет трехзначным числом. [pre2] for n in range(1, 100): s = '1' + '0' * n while '10' in s or '1' in s: if '10' in s: s = s.replace('10', '001', 1) elif '1' in s: s = s.replace('1', '0', 1) if len(s) == 3: print(s) print(n) break [/pre2]

Ответов - 5

MrAndrewson: В вопросе про длину строки. Длина строки 000 равна 3, а это однозначное число.

timson: Спасибо

PotapkovaTV: В результате выполнения алгоритма всегда будет строка состоящая из 0. Так как в исходной строке и потом только одна 1, В самый последний раз выполнения алгоритма командой ЕСЛИ нашлось(1) ТО заменить(1, 0) эта единственная 1 заменяется на 0 Подскажите, пожалуйста, ошибку в моих рассуждениях


Поляков: PotapkovaTV пишет: В результате выполнения алгоритма всегда будет строка состоящая из 0. Так как в исходной строке и потом только одна 1, В самый последний раз выполнения алгоритма командой ЕСЛИ нашлось(1) ТО заменить(1, 0) эта единственная 1 заменяется на 0 Здесь нет ошибки.

Поляков: timson_00 пишет: if len(s) == 3: if len(s) > 100.



полная версия страницы