Шешімі: Преобразование строки Редактором
Исполнитель Редактор получает на вход строку цифр. Команда «заменить(v, w)» заменяет первое слева вхождение цепочки v на цепочку w, а команда «нашлось(v)» проверяет наличие цепочки v в строке, не изменяя её. Какая строка получится в результате применения программы к строке, состоящей из 104 идущих подряд цифр 9?
НАЧАЛО
ПОКА нашлось(22222) ИЛИ нашлось(9999)
ЕСЛИ нашлось(22222)
ТО заменить(22222, 99)
ИНАЧЕ заменить(9999, 2)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Шешім по шагам
4 қадамПока в строке есть 9999 и нет 22222, каждая замена 9999 на 2 уменьшает число девяток в четыре раза. Из 104 девяток получается 26 двоек.
$$104 : 4 = 26$$В строке из 26 двоек пять групп по 5 двоек заменяются на 99, остаётся одна двойка. Поэтому получается десять девяток и одна двойка.
$$26 = 5 \cdot 5 + 1$$Теперь цепочки 22222 нет, поэтому заменяем первые төрт девятки на 2: 99999999992 \to 29999992.
Цепочка 9999 ещё есть. Ещё одна замена даёт 29999992 \to 222992. После этого нет ни 22222, ни 9999, и цикл завершается.
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Не учитывать, что при наличии 22222 выполняется именно первая ветвь условия.
Остановиться сразу после получения он девяток и одной двойки.
Заменять все вхождения цепочки вместо первого слева.