Исполнитель редактор получает на вход строку цифр и преобразовывает её. редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр. заменить (v, w) нашлось (v) дана программа для исполнителя редактор: пока нашлось (555) или нашлось (333) если нашлось (333) то заменить (333, 5) иначе заменить (555, 3) конец если конец пока дана строка, состоящая из 500 цифр 5. сколько пятёрок было удалено за время обработки строки по этой программе?

mazurok3 mazurok3    1   05.10.2019 12:00    24

Ответы
gorlatenkoviktoria gorlatenkoviktoria  09.10.2020 21:35

После первого шага алгоритма из 500 "5" получается 1 "3" и 497 "5"; после второго - 2 "3" и 494 "5", после третьего - 3 "3" и 491 "5"; после четвертого - 492 "5". Таким образом, после каждых 4 шагов количество "5" уменьшается на 8.

К последнему шагу алгоритма в строке останется 500-62*8 = 4 "5".

После последнего шага - 1 "3" и 1 "5", т.е. "35".

Таким образом, за время обработки из строки удалится 500-1 = 499 пятёрок.

ПОКАЗАТЬ ОТВЕТЫ
Отлицница23 Отлицница23  25.01.2024 22:33
Для решения данной задачи мы можем использовать подход "шаг за шагом", чтобы понять, как программа изменяет исходную строку.

1. Изначально у нас есть строка из 500 цифр 5.
2. Мы начинаем выполнение программы и проходимся по строке с помощью цикла while.
3. Первая команда в программе - "пока нашлось (555) или нашлось (333)". Мы должны искать подстроки "555" или "333".
4. На первом шаге мы находим первое вхождение "555" в строку. Так как нашлось (555), мы выполняем следующую команду.
5. Вторая команда - "заменить (555, 3)". Мы должны заменить все вхождения "555" на "3".
6. Заменяем первое вхождение "555" на "3" и получаем новую строку с 498 цифрами "5" и одной цифрой "3".
7. Возвращаемся в начало цикла и проверяем условие снова.
8. На этот раз не находим "555", но находим "333". Теперь выполняем команду "заменить (333, 5)".
9. Заменяем все вхождения "333" на "5" и получаем новую строку с 498 цифрами "5" и одной цифрой "5".
10. Возвращаемся в начало цикла и проверяем условие снова.
11. На этот раз не находим ни "555", ни "333". Условие в цикле не выполняется и мы выходим из цикла, завершая выполнение программы.

Таким образом, в результате выполнения программы было удалено две цифры 5. Одна цифра 5 была заменена на цифру 3, а другая цифра 5 была заменена на цифру 5.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика