ЕГЭ 2024 по информатике (Python): Разбор задач

Этот материал посвящен разбору заданий базового уровня ЕГЭ по информатике на языке программирования Python. На выполнение каждого задания отводится 4 минуты. Задачи решаются анализом и выполнением алгоритмов для исполнителей.

Задача 1: Обработка числа автоматом

Автомат обрабатывает натуральное число n по следующему алгоритму:

  1. Строится двоичная запись числа n.
  2. Запись переворачивается (читается справа налево), ведущие нули отбрасываются.
  3. Полученное число переводится в десятичную систему счисления и выводится на экран.

Необходимо найти наибольшее число, не превышающее 1000, после обработки автоматом дающее результат 23.

Решение использует цикл, перебирающий значения переменной n от 1 до 1000. Двоичная запись числа строится с помощью встроенной функции bin(). Префикс «0b», добавляемый bin(), удаляется срезом ([2:]). Перевернутая запись получается срезом с шагом -1 ([::-1]). Перевод в десятичную систему осуществляется функцией int(), учитывая основание системы счисления (2). Если результат равен 23, выводится значение n.

Результат работы программы: 928

Задача 2: Добавление разрядов к двоичной записи

На вход подается натуральное число n. Алгоритм:

  1. Строится двоичная запись числа n.
  2. Справа дописываются два разряда: «00» если n четное, «10» если нечетное.
  3. Результат переводится в десятичную систему счисления.

Необходимо найти минимальное число n, после обработки которого автомат получает число большее 138.

Решение аналогично предыдущему, с добавлением условия проверки четности n и конкатенации соответствующей строки к двоичной записи. Используется цикл с перебором значений n от меньшего к большему. Первый результат, превышающий 138, является ответом.

Результат работы программы: 35

Задача 3: Сумма цифр двоичной записи

На вход подается натуральное число n. Алгоритм:

  1. Строится двоичная запись числа n.
  2. Складываются все цифры двоичной записи, и остаток от деления суммы на 2 дописывается в конец числа.
  3. Над полученной записью повторяются те же действия.

Необходимо найти наименьшее число, строго большее 118, которое может быть результатом работы алгоритма.

Для подсчета единиц в двоичной записи используется метод count(‘1’). Остаток от деления на 2 дописывается к строке. Действия пункта 2 повторяются. Для нахождения наименьшего результата, превышающего 118, используется список для хранения результатов, а затем функция min().

Результат работы программы: 120

Задача 4: Дописывание цифр в двоичную запись

Строится двоичная запись числа n. Далее:

  1. Если n делится на 3, к записи дописываются две последние цифры.
  2. Иначе, остаток от деления на 3, умноженный на 3, переводится в двоичную запись и дописывается к числу.

Необходимо найти минимальное число, не меньшее 195, которое может быть получено в результате работы алгоритма.

Решение использует проверку на кратность 3 и конкатенацию соответствующих строк. Для получения правильного ответа используется список для хранения результатов и функция min().

Результат работы программы: 198

Задача 5: Проверка на кратность и добавление кодов

На вход подается натуральное число n. Алгоритм:

  1. Строится двоичная запись числа n.
  2. Если n делится на 7, дописывается двоичный код числа 7. Иначе, дописывается 1.
  3. Если полученное число делится на 5, дописывается двоичный код числа 5. Иначе, дописывается 1.
  4. Результат переводится в десятичную систему.

Необходимо найти наименьшее значение n, для которого результат работы алгоритма строго больше 500000.

Реализация включает проверку на кратность 7 и 5 и конкатенацию соответствующих двоичных кодов. Необходимо расширить диапазон перебора для нахождения результата.

Результат работы программы: 782

Задача 6: Двенадцатеричная система счисления

На вход подается натуральное число n > 143. Алгоритм:

  1. Строится двенадцатеричная запись числа n с помощью рекурсивной функции.
  2. Если n делится на 12, дописываются три последние цифры.
  3. Иначе, остаток от деления на 12, умноженный на 3, переводится в двенадцатеричную систему и дописывается.

Необходимо найти число n, после обработки которого получится наибольшее число, меньшее 58000.

Перевод в двенадцатеричную систему осуществляется рекурсивной функцией, обрабатывающей символы ‘A’ и ‘B’ для значений 10 и 11 соответственно. Используется сортировка списка результатов по убыванию для нахождения наибольшего числа.

Результат работы программы: 971

Задача 7: Восьмеричная система счисления и замена цифр

Алгоритм получает на вход пятизначное натуральное число n.

  1. Строится восьмеричная запись числа.
  2. Все нечётные цифры заменяются на 2.
  3. К полученному числу дописывается остаток от деления n на 8.
  4. Действия пунктов 2 и 3 повторяются.

Необходимо найти сумму таких n, которые кратны 2023.

Для решения используется функция oct() для перевода в восьмеричную систему. Нечетные цифры заменяются на «2» с помощью метода replace(). Остаток от деления на 8 дописывается к строке. Действия повторяются. Вычисляется сумма чисел, кратных 2023.

Результат работы программы: (Результат зависит от реализации и не приводится в исходном тексте)

Задача 8: Суммы цифр восьмеричного числа

Число n в восьмеричной системе счисления является четырёхзначным. Алгоритм:

  1. Вычисляются суммы первой и последней, а также второй и третьей цифр десятичной записи n.
  2. Полученные суммы записываются в порядке неубывания, образуя новое число.

Необходимо найти сумму наименьшего и наибольшего чисел n, для которых результат равен 317.

Перебор ведется от 8³ до 8⁴ (четырехзначные числа в восьмеричной системе). Суммы цифр вычисляются, и результаты записываются в порядке неубывания. Список результатов используется для нахождения минимального и максимального значений n.

Результат работы программы: 5872

Что будем искать? Например,программа