В этой статье мы решим задачу № 5 из демонстрационного варианта ЕГЭ-2023 года по информатике. Задача № 5 встречается почти в неизменном виде, начиная с ЕГЭ-2015. В соответствии со спецификацией ФИПИ задача относится к базовому уровню сложности и оценивается в 1 балл, рекомендуемое время на решение этой задачи составляет 4 минуты. В конце статьи будет ссылка на тест на портале Эрудит.Онлайн. В этом тесте вы сможете потренироваться в решении задач такого типа. Обращайте внимание не только на правильность решения, но и на затраченное время.
Демонстрационный вариант ЕГЭ-2023 по информатике
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
- Строится двоичная запись числа N.
- Далее эта запись обрабатывается по следующему правилу:
а) если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается 0, а затем два левых разряда заменяются на 10;
б) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается 1, а затем два левых разряда заменяются на 11.
Полученная таким образом запись является двоичной записью искомого числа R.
Например, для исходного числа 6 (в десятичной записи) = 110 (в двоичной записи) результатом является число 1000 (в двоичной записи) = 8 (в десятичной записи), а для исходного числа 4 (в десятичной записи) = 100 (в двоичной записи) результатом является число 1101 (в двоичной записи) = 13 (в десятичной записи).
Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число R, большее 40. В ответе запишите это число в десятичной системе счисления.
Решение
Мы предлагаем Вам решить это задание с помощью языков программирования, что ускорит и упростит нахождение ответа. Приведем пример кода на языке Python.
Далее дадим некоторые комментарии к решению:
1. Для нахождения ответа задачи будем перебирать возможные варианты от 1 до 40 (правую границу можно взять любую, но такую, чтобы результат работы алгоритма на данном числе не был меньше 40).
2. Выполним первый шаг алгоритма, то есть переведем число в бинарный вид с помощью функции bin, которая вернет строку вида 0b101. Затем с помощью оператора извлечения среза избавимся от первых двух символов этой записи, так как они всего лишь показывают, что число представлено в двоичной системе счисления. Напомним оператор извлечения среза: [X:Y]. X – начало среза, а Y – окончание; по умолчанию первый индекс равен 0, а последний равен длине строки. То есть, применяя к строке [2:], в результате останется подстрока с третьего символа до конца строки (нумерация символов строки начинается с 0).
3. Выполним второй шаг алгоритма. Необходимо проверить, четная или нечетная сумма цифр числа, а значит, достаточно выяснить, четное или нечетное количество единиц, которое подсчитываем с помощью функции s.count('1'). Если количество четно, то необходимо произвести действия, описанные на шаге 2а. Для замены первых двух символов опять воспользуемся срезом, убрав первые 2 символа в записи числа, затем спереди к началу строки прибавим 10, а к концу 0. Аналогично выполним шаг 2б.
4. Чтобы найти R, переведем полученное двоичное значение в десятичную систему счисления, применив функцию int(s, 2), где 2 будет показывать, из какой системы осуществляется перевод. Если полученное значение больше 40, то выведем исходное n, а также выйдем из цикла, так как первое найденное n будет минимальным.
После запуска программы почти моментально получаем результат:
Число 16 и будет являться верным ответом на задание №5.
В другой нашей статье можно посмотреть еще примеры решения аналогичных задач из ЕГЭ предыдущих лет:
Задача № 5 из ЕГЭ-2021 по информатике
Потренироваться в решении задач такого типа можно в тесте на портале Эрудит.Онлайн «ЕГЭ-2023 Задача № 5».
Разборы других задач: