Задание 6. Тип заданий 14: алгоритмы с исполнителем.
  • Задание:

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


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

    НАЧАЛО
       ПОКА нашлось (222) ИЛИ нашлось (555)
          ЕСЛИ нашлось (222)
             ТО заменить (222, 5)
             ИНАЧЕ заменить (555, 2)
          КОНЕЦ ЕСЛИ
       КОНЕЦ ПОКА
    КОНЕЦ

  • Решение:

    Рассмотрим алгоритм.

    Условие цикла выполняется, пока в строке есть три подряд идущих цифры 2 или три подряд идущих цифры 5.

    Каждый повтор цикла проверяется условие:

          ЕСЛИ нашлось (222)
             ТО заменить (222, 5)
             ИНАЧЕ заменить (555, 2)
          КОНЕЦ ЕСЛИ

    Проще говоря, если в строке есть три подряд идущих цифры 2, то они меняются на 5, иначе (если 222 в строке нет), 555 меняется на 2.

    Рассмотрим простой пример. Пусть строка состоит из десяти цифр 5:

    5555555555

    Условие не выполняется, значит первые три пятёрки заменятся двойкой:

    25555555

    Условие также не выполняется, первые три пятёрки заменятся двойкой:

    225555

    Условие не выполняется, первые три пятёрки заменятся двойкой:

    2225

    Условие выполняется, первые три двойки заменятся пятёркой:

    55

    Таким образом, каждые четыре повтора цикла строка уменьшается на 8 пятёрок.

    Нам дана строка, состоящая из 110 цифр 5. Если каждые четыре повтора строка уменьшается на восемь пятёрок, то в конечном счете в строке останется 6 пятёрок (104 пятёрки будут убраны, 6 пятёрок останется).

    Рассмотрим, что произойдёт со строкой после этого:

    555555

    Первые 555 заменяются двойкой:

    2555

    Вторые 555 заменяются двойкой:

    22

    Условие в цикле перестало выполняться, цикл завершился.

    Ответ: 22

Поделиться:
 
Комментарии (2)
Mikheev Mikhail # 26 февраля 2016 в 08:13 0
Очень странная задача. В сборнике Крылова и Ушакова(вроде бы, один из них является работником ФИПИ) если решать вашим способом то ответ не сходится. А если решать по другому, т.е считать, что сначала Исполнитель сначала пройдет по всей строке и заменит что-то, потом еще раз и так до тех пор, пока условия для замены выполняются, то ответ правильный. Не совсем понятно, что от нас хотят.
Информатик БУ # 26 февраля 2016 в 09:41 0
Дело в том, что условие для первоначальной строки может выполняться, а может не выполняться. В данном случае условие не выполняется, и от строки отнимается восемь пятёрок каждые четыре повтора цикла. Если бы строка состояла не из цифр 5, а из цифр 2, то условие бы выполнялось, и сначала строка заменилась бы на пятёрки, а затем от этой новой строки отнималось бы по восемь пятёрок.
Перевести число из в Результат: 510 = 1012