
Тип 12 №39241
Дана программа для редактора:
ПОКА нашлось (111) ИЛИ нашлось (222)
заменить (111, 22)
заменить (222, 1)
КОНЕЦ ПОКА
Известно, что исходная строка содержала больше 200 единиц и не содержала других цифр, а после выполнения программы получилась строка, содержащая только двойки. Какое наименьшее количество единиц могло быть в исходной строке?

Комментарии к коду решения:
for n in range(201, 1000):- Просто пробегаем числа большие 200.s = '1' * n- Создание строки, состоящей изnсимволов'1'.while '111' in s or '222' in s:- Запускаем цикл, пока в строке есть подстроки'111'или'222'.s = s.replace('111', '22', 1)- Заменяем первую найденную подстроку'111'на'22'.s = s.replace('222', '1', 1)- Заменяем первую найденную подстроку'222'на'1'.if len(s) == s.count('2'):- Проверка: если длина строки равна количеству символов'2'(строка содержащая только двойки).print(n)- Выводим найденное числа n (кол-во единиц в исходной строке).break- Прерываем выполнения цикла.
for n in range(201, 1000):
s = '1' * n
while '111' in s or '222' in s:
s = s.replace('111', '22', 1)
s = s.replace('222', '1', 1)
if len(s) == s.count('2'):
print(n)
break
**Присоединяйтесь и готовьтесь с нами: t.me/informatika_kege_itpy**

Автор статьи: @ilandroxxy