Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр. заменить (v, w)

нашлось (v)

Дана программа для исполнителя Редактор:

НАЧАЛО

ПОКА нашлось (333) ИЛИ нашлось (555)

ЕСЛИ нашлось (555)

ТО заменить (555, 3)

ИНАЧЕ заменить (333, 5)

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 72 идущих подряд цифр 5? В ответе запишите полученную строку.

5ксюША88881 5ксюША88881    1   22.07.2021 11:35    1

Ответы
LAKI2280041 LAKI2280041  21.08.2021 12:25

ответ: 5533

Проще всего решить данную задачу через программу на питоне:

s = '5' * 72

while '333' in s or '555' in s:

   if '555' in s:

       s = s.replace('555', '3', 1)

   else:

       s = s.replace('333', '5', 1)

print(s)

Но, если делать вручную, тогда так:

Возьмём 10 символов из строки, состоящей из 72 идущих подряд цифр 5.

5555555555

Читаем программу: ЕСЛИ нашлось (555) ТО заменить (555, 3)

555 555 555 5

 3      3     3    5

Стоит заметить, что у нас получилась строка 3335, но не спешим её заменять на 5, ведь по условию нужно найти все 5 и только если их нет, переходить к else (ИНАЧЕ заменить (333, 5))

Исходя из этого, заменим всю строку по 1 условию (ЕСЛИ нашлось (555) ТО заменить (555, 3)), т.е. просто поделим всё количество на 3.

72 / 3 = 24 без остатка (Это значит, что все пятёрки заменились на тройки)

Итак, остались 24 тройки, запишем 10 символов и посмотрим, что будет:

3333333333

333 333 333 3

 5      5    5    3      

         3           3        

Мы видим, что из 9 троек получилась ровно 1, поделим 24 на 9

У нас получится 2 и ещё 6 в остатке, т.е. выглядеть строка будет так:

33 333333

Заменяем на "5"

333 333 33

 5      5   33

Это и есть ответ.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика