ЕГЭ Информатика 2021: Разбор задачи 22 (алгоритм)

Задание №22 из демо-варианта ЕГЭ по информатике 2021 года аналогично заданию №20 из ЕГЭ 2020 года и проверяет умение анализировать алгоритмы и фрагменты кода.

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

На нескольких языках программирования записан алгоритм, принимающий на вход число x и выводящий два числа l и m. Необходимо найти наибольшее число x, при вводе которого алгоритм выводит сначала 4, а потом 5. Пример кода на C++ представлен ниже.

Анализ алгоритма

Алгоритм выводит значения переменных l и m. Задача – найти x, при котором l = 4 и m = 5.

Алгоритм работает следующим образом:

  • Число x вводится с клавиатуры.
  • Переменным l и m присваиваются значения 0 и 9 соответственно.
  • Цикл выполняется пока x ≥ 9. В цикле:
    • m увеличивается на 1.
    • x уменьшается на 9.
  • После цикла l равно частному от деления исходного x на 9, а x равно остатку от деления.
  • Если m < l, то l и m меняются местами.
  • Выводятся l и m в порядке возрастания.

Чтобы получить l = 4 и m = 5, рассмотрим случай, когда l = 5 (частное) и m = 4 (остаток). Тогда:

x = l * 9 + m = 5 * 9 + 4 = 49

Для наименьшего x, возьмем l = 4 и m = 5:

x = l * 9 + m = 4 * 9 + 5 = 41

Наибольшее число x, удовлетворяющее условию, равно 49.

Решение методом перебора

Задача может быть решена методом перебора значений x в заданном диапазоне (например, от 1 до 500). В цикле запускаем алгоритм и проверяем, равны ли l и m 4 и 5. Если равны, выводим значение x. Этот метод, хотя и работает, не всегда эффективен при больших диапазонах значений x.

Решение задания №22 ЕГЭ по информатике 2021 года требует анализа алгоритма. Ручной анализ часто эффективнее метода перебора. Однако, при сложном алгоритме, метод перебора может быть использован как альтернативное решение.

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