Разборы · ОГЭ, задание 16
Задание 16 ОГЭ по информатике: программа на Python
В задании 16 нужно написать программу, которая обрабатывает последовательность чисел: считает количество, сумму, минимум, максимум или среднее для чисел с заданным свойством. Максимум — 2 балла. Разберём решение на Python.
Два формата ввода
Сначала количество, потом числа. Первая строка — N, затем N чисел, каждое в своей строке:
n = int(input())
for i in range(n):
x = int(input())
...
Числа до нуля. Последовательность заканчивается числом 0, которое обрабатывать не нужно:
x = int(input())
while x != 0:
...
x = int(input())
Пример
На вход подаётся количество чисел N, затем N натуральных чисел, не превышающих 30 000. Найдите минимальное число, оканчивающееся на 4. Гарантируется, что такое число есть.
n = int(input())
m = 30001
for i in range(n):
x = int(input())
if x % 10 == 4 and x < m:
m = x
print(m)
Начальное значение m берётся заведомо больше любого возможного числа — поэтому первое подходящее число его обязательно заменит.
Пример из демоверсии 2027: системы счисления
Посчитайте, сколько чисел последовательности в восьмеричной записи четырёхзначны и оканчиваются на 5. Числа вводятся до 0, их не больше 1000.
Переводить числа в восьмеричную систему не нужно. Последняя восьмеричная цифра — это остаток от деления на 8: условие «оканчивается на 5» — x % 8 == 5. Четырёхзначные восьмеричные числа — от 1000₈ = 512 до 7777₈ = 4095.
count = 0
x = int(input())
while x != 0:
if x % 8 == 5 and 512 <= x <= 4095:
count += 1
x = int(input())
print(count)
Как оценивают
Программу запускают на нескольких тестах из критериев.
- 2 балла — верный ответ на всех тестах.
- 1 балл — неверный ответ только на одном тесте.
- 0 баллов — ошибок больше.
Программу можно написать на любом языке программирования, но решение на Python обычно самое короткое.
Типичные ошибки
- Начальный минимум равен 0. Тогда ответ всегда 0. Берите число больше максимально возможного.
- Обработан завершающий 0. В формате «до нуля» ноль не входит в последовательность — например, не должен стать минимумом.
- Лишний текст в выводе.
print("Ответ:", m)— ошибка: нужно вывести только число. - Ввод всех чисел одной строкой. Обычно каждое число — в отдельной строке, и
input()вызывают для каждого. - Не выведено «NO». Если в условии сказано вывести NO, когда подходящих чисел нет, этот случай обязательно проверят.
- Остаток и последняя цифра: «оканчивается на 4» —
x % 10 == 4, «кратно 4» —x % 4 == 0. Их легко перепутать. В другой системе счисления последняя цифра — остаток от деления на её основание.
Как тренироваться
В тренажёре задания 16 Python работает прямо в браузере. Программа проверяется на наборе тестов: пример, особые случаи, случайные данные, максимальное количество чисел — и получает 0, 1 или 2 балла по критериям ОГЭ.