Автор | Сообщение |
|
Отправлено: 08.12.22 15:16. Заголовок: (№ 5723) (А. Рогов)
Добрый день. При решении данной задачи выводит ответ 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 длина получившейся строки будет трехзначным числом. 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
|
|
|
Ответов - 5
[только новые]
|
|
|
Отправлено: 12.12.22 08:11. Заголовок: В вопросе про длину ..
В вопросе про длину строки. Длина строки 000 равна 3, а это однозначное число.
|
|
|
|
Отправлено: 12.12.22 14:13. Заголовок: Спасибо..
Спасибо
|
|
|
|
Отправлено: 12.04.23 10:12. Заголовок: Всегда выводятся только 0
В результате выполнения алгоритма всегда будет строка состоящая из 0. Так как в исходной строке и потом только одна 1, В самый последний раз выполнения алгоритма командой ЕСЛИ нашлось(1) ТО заменить(1, 0) эта единственная 1 заменяется на 0 Подскажите, пожалуйста, ошибку в моих рассуждениях
|
|
|
|
| Администратор
|
Сообщение: 3984
|
|
Отправлено: 03.06.23 22:57. Заголовок: PotapkovaTV пишет: В..
PotapkovaTV пишет: цитата: | В результате выполнения алгоритма всегда будет строка состоящая из 0. Так как в исходной строке и потом только одна 1, В самый последний раз выполнения алгоритма командой ЕСЛИ нашлось(1) ТО заменить(1, 0) эта единственная 1 заменяется на 0 |
|
Здесь нет ошибки.
|
|
|
|
| Администратор
|
Сообщение: 3983
|
|
Отправлено: 03.06.23 22:54. Заголовок: timson_00 пишет: if ..
timson_00 пишет: if len(s) > 100.
|
|
|
|