Задание №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 года требует анализа алгоритма. Ручной анализ часто эффективнее метода перебора. Однако, при сложном алгоритме, метод перебора может быть использован как альтернативное решение.