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

Разбор задания №12 из демоверсии ЕГЭ по информатике 2024 года. Задание повышенного уровня, проверяющее умение исполнять алгоритм для конкретного исполнителя с фиксированным набором команд. На выполнение отводится 6 минут.

Условие задачи

Исполнитель — редактор. На вход программе поступает строка, начинающаяся с цифры 5, а затем содержащая N цифр 2. Необходимо определить наибольшее значение переменной N, при котором сумма цифр в строке, получившейся в результате выполнения программы, равна 64. Значение N находится в диапазоне (3; 10000).

Алгоритм решения

Для решения задачи используется цикл for, перебирающий значения N от 4 до 10000. В каждом проходе цикла:

  1. Создаётся строка, начинающаяся с «5» и содержащая N двоек: ‘5’ + ‘2’ * N
  2. Реализуется алгоритм замены подстрок:

    while '52' in s:
        s = s.replace('52', '11', 1) 
    while '422' in s:
        s = s.replace('422', '5', 1)
    while '1122' in s:
        s = s.replace('1122', '25', 1)

    Этот фрагмент кода последовательно заменяет подстроки «52», «422» и «1122» на «11», «5» и «25» соответственно. Замена производится только один раз за итерацию while.

  3. Вычисляется сумма цифр в результирующей строке с помощью функции sum и map:

    sum(map(int, list(s)))

    Функция map преобразует каждый символ строки в целое число, а sum суммирует полученные числа.

  4. Если полученная сумма равна 64, значение N выводится на экран. Так как необходимо найти наибольшее значение N, последнее найденное значение будет искомым решением.

Решение на Python

Полный код решения на Python:

for n in range(4, 10000):
    s = '5' + '2' * n
    while '52' in s:
        s = s.replace('52', '11', 1)
    while '422' in s:
        s = s.replace('422', '5', 1)
    while '1122' in s:
        s = s.replace('1122', '25', 1)
    if sum(map(int, list(s))) == 64:
        print(n)
        break

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

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