Этот материал посвящен разбору заданий базового уровня ЕГЭ по информатике на языке программирования Python. На выполнение каждого задания отводится 4 минуты. Задачи решаются анализом и выполнением алгоритмов для исполнителей.
Задача 1: Обработка числа автоматом
Автомат обрабатывает натуральное число n по следующему алгоритму:
- Строится двоичная запись числа n.
- Запись переворачивается (читается справа налево), ведущие нули отбрасываются.
- Полученное число переводится в десятичную систему счисления и выводится на экран.
Необходимо найти наибольшее число, не превышающее 1000, после обработки автоматом дающее результат 23.
Решение использует цикл, перебирающий значения переменной n от 1 до 1000. Двоичная запись числа строится с помощью встроенной функции bin(). Префикс «0b», добавляемый bin(), удаляется срезом ([2:]). Перевернутая запись получается срезом с шагом -1 ([::-1]). Перевод в десятичную систему осуществляется функцией int(), учитывая основание системы счисления (2). Если результат равен 23, выводится значение n.
Результат работы программы: 928
Задача 2: Добавление разрядов к двоичной записи
На вход подается натуральное число n. Алгоритм:
- Строится двоичная запись числа n.
- Справа дописываются два разряда: «00» если n четное, «10» если нечетное.
- Результат переводится в десятичную систему счисления.
Необходимо найти минимальное число n, после обработки которого автомат получает число большее 138.
Решение аналогично предыдущему, с добавлением условия проверки четности n и конкатенации соответствующей строки к двоичной записи. Используется цикл с перебором значений n от меньшего к большему. Первый результат, превышающий 138, является ответом.
Результат работы программы: 35
Задача 3: Сумма цифр двоичной записи
На вход подается натуральное число n. Алгоритм:
- Строится двоичная запись числа n.
- Складываются все цифры двоичной записи, и остаток от деления суммы на 2 дописывается в конец числа.
- Над полученной записью повторяются те же действия.
Необходимо найти наименьшее число, строго большее 118, которое может быть результатом работы алгоритма.
Для подсчета единиц в двоичной записи используется метод count(‘1’). Остаток от деления на 2 дописывается к строке. Действия пункта 2 повторяются. Для нахождения наименьшего результата, превышающего 118, используется список для хранения результатов, а затем функция min().
Результат работы программы: 120
Задача 4: Дописывание цифр в двоичную запись
Строится двоичная запись числа n. Далее:
- Если n делится на 3, к записи дописываются две последние цифры.
- Иначе, остаток от деления на 3, умноженный на 3, переводится в двоичную запись и дописывается к числу.
Необходимо найти минимальное число, не меньшее 195, которое может быть получено в результате работы алгоритма.
Решение использует проверку на кратность 3 и конкатенацию соответствующих строк. Для получения правильного ответа используется список для хранения результатов и функция min().
Результат работы программы: 198
Задача 5: Проверка на кратность и добавление кодов
На вход подается натуральное число n. Алгоритм:
- Строится двоичная запись числа n.
- Если n делится на 7, дописывается двоичный код числа 7. Иначе, дописывается 1.
- Если полученное число делится на 5, дописывается двоичный код числа 5. Иначе, дописывается 1.
- Результат переводится в десятичную систему.
Необходимо найти наименьшее значение n, для которого результат работы алгоритма строго больше 500000.
Реализация включает проверку на кратность 7 и 5 и конкатенацию соответствующих двоичных кодов. Необходимо расширить диапазон перебора для нахождения результата.
Результат работы программы: 782
Задача 6: Двенадцатеричная система счисления
На вход подается натуральное число n > 143. Алгоритм:
- Строится двенадцатеричная запись числа n с помощью рекурсивной функции.
- Если n делится на 12, дописываются три последние цифры.
- Иначе, остаток от деления на 12, умноженный на 3, переводится в двенадцатеричную систему и дописывается.
Необходимо найти число n, после обработки которого получится наибольшее число, меньшее 58000.
Перевод в двенадцатеричную систему осуществляется рекурсивной функцией, обрабатывающей символы ‘A’ и ‘B’ для значений 10 и 11 соответственно. Используется сортировка списка результатов по убыванию для нахождения наибольшего числа.
Результат работы программы: 971
Задача 7: Восьмеричная система счисления и замена цифр
Алгоритм получает на вход пятизначное натуральное число n.
- Строится восьмеричная запись числа.
- Все нечётные цифры заменяются на 2.
- К полученному числу дописывается остаток от деления n на 8.
- Действия пунктов 2 и 3 повторяются.
Необходимо найти сумму таких n, которые кратны 2023.
Для решения используется функция oct() для перевода в восьмеричную систему. Нечетные цифры заменяются на «2» с помощью метода replace(). Остаток от деления на 8 дописывается к строке. Действия повторяются. Вычисляется сумма чисел, кратных 2023.
Результат работы программы: (Результат зависит от реализации и не приводится в исходном тексте)
Задача 8: Суммы цифр восьмеричного числа
Число n в восьмеричной системе счисления является четырёхзначным. Алгоритм:
- Вычисляются суммы первой и последней, а также второй и третьей цифр десятичной записи n.
- Полученные суммы записываются в порядке неубывания, образуя новое число.
Необходимо найти сумму наименьшего и наибольшего чисел n, для которых результат равен 317.
Перебор ведется от 8³ до 8⁴ (четырехзначные числа в восьмеричной системе). Суммы цифр вычисляются, и результаты записываются в порядке неубывания. Список результатов используется для нахождения минимального и максимального значений n.
Результат работы программы: 5872