ниже программы к строке, состоящей из 68 идущих подряд цифр 8?
Демонстрационный вариант ЕГЭ 2016 г. – задание №14
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
А) заменить (v, w).
Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды
заменить (111, 27)
преобразует строку 05111150 в строку 0527150. Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку.
Б) нашлось (v).
Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.
Цикл
|
1 2 3 |
ПОКА условие последовательность команд КОНЕЦ ПОКА |
выполняется, пока условие истинно.
В конструкции
|
1 2 3 4 |
ЕСЛИ условие ТО команда1 ИНАЧЕ команда2 КОНЕЦ ЕСЛИ |
выполняется команда1 (если условие истинно) или команда2 (если условие ложно).
Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 68 идущих подряд цифр 8? В ответе запишите полученную строку.
|
1 2 3 4 5 6 7 8 |
НАЧАЛО ПОКА нашлось (222) ИЛИ нашлось (888) ЕСЛИ нашлось (222) ТО заменить (222, 8) ИНАЧЕ заменить (888, 2) КОНЕЦ ЕСЛИ КОНЕЦ ПОКА КОНЕЦ |
Ответ:
Решение:
Программа будет работать до тех пор, пока в строке есть цепочка цифр 222 или цепочка цифр 888.
Если в строке встречается 222, то заменяем на 8.
Если в строке нет цепочки 222, но встречается цепочка 888, то заменяем ее на 2.
Наша строка состоит из 68 идущих подряд цифр 8.
1) меняем первые 888 на 2 и получаем
2 и (65 цифр 8)
2) меняем следующие 888 на 2 и получаем
22 и (62 цифр 8)
3) меняем следующие 888 на 2 и получаем
222 и ( 59 цифр 8)
4) теперь у нас появилась цепочка 222, поэтому мы должны заменить ее на 8.
получаем строку состоящую из 60 цифр 8
Анализируем что произошло!
А получилось следующее, за 4 шага мы заменили 9 восьмерок на 1 (или удалили 8 восьмерок из нашей строки).
Становится понятно, что за каждые 4 шага мы будем удалять по 8 восьмерок.
60-8=52
52-8=44
44-8=36
36-8=28
28-8=20
20-8=12
12-8=4 останется строка состоящая из 4 идущих подряд 8 (8888).Так как 888 заменяется на 2, то в итоге мы получаем 28.
Ответ: 28
