Пробный урок
📘 ЕГЭ по информатике 2027 · задание 17 из 27

Задание 17 ЕГЭ по информатике: Составление и запись программы обработки числовой последовательности

Что проверяет задание 17, сколько баллов оно приносит и сколько времени на него закладывать — и 3 примера в формате ФИПИ с подробным решением и ответом.

Уровень
повышенный
Максимум
1 балл
Время
~13 минут
Компьютер
нужен (специальное ПО)

Примеры задания 17 с решениями

Сначала попробуйте решить сами, затем откройте решение и сверьте ответ

Пример 1

В файле содержится последовательность целых чисел, каждое от −10 000 до 10 000, по одному в строке. Определите количество пар соседних элементов последовательности, в которых хотя бы одно число оканчивается на 3, а сумма элементов пары меньше максимального элемента последовательности, кратного 13. В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар.
Показать решение
1. Сначала один раз находим максимальный элемент, кратный 13, — он нужен для сравнения. 2. Потом проходим по всем парам соседей и считаем подходящие. 3. У отрицательных чисел последняя цифра — это последняя цифра модуля: −13 % 10 в Python даёт 7, поэтому берём abs.
a = [int(x) for x in open('17.txt')]                 # читаем все числа файла в список
m = max(x for x in a if x % 13 == 0)                 # максимальный элемент, кратный 13
cnt, best = 0, -10**9                                # количество пар и максимальная сумма
for i in range(len(a) - 1):                          # i — индекс левого элемента пары соседей
    x, y = a[i], a[i + 1]                            # сама пара
    end3 = abs(x) % 10 == 3 or abs(y) % 10 == 3      # хотя бы одно оканчивается на 3 (abs — для отрицательных)
    if end3 and x + y < m:                           # оба условия выполнены
        cnt += 1                                     # пара подходит
        best = max(best, x + y)                      # обновляем максимальную сумму
print(cnt, best)                                     # два числа ответа
Ответ зависит от файла с экзамена, поэтому готовых чисел здесь нет.

Пример 2

В файле содержится последовательность целых чисел, каждое от −10 000 до 10 000, по одному в строке. Определите количество троек подряд идущих элементов, в которых ровно два числа трёхзначные, а сумма тройки не больше максимального трёхзначного элемента последовательности, оканчивающегося на 5. В ответе запишите количество троек, затем максимальную из сумм таких троек.
Показать решение
1. Трёхзначное число — модуль от 100 до 999 (отрицательные тоже бывают трёхзначными). 2. Сначала один раз находим порог — максимальное трёхзначное, оканчивающееся на 5.
a = [int(x) for x in open('17.txt')]                        # все числа файла
def three(x): return 100 <= abs(x) <= 999                   # трёхзначное ли число (с учётом знака)
m = max(x for x in a if three(x) and abs(x) % 10 == 5)      # порог: максимальное трёхзначное на 5
cnt, best = 0, -10**9                                       # количество троек и максимальная сумма
for i in range(len(a) - 2):                                 # i — первый элемент тройки
    t = a[i:i + 3]                                          # сама тройка
    if sum(three(x) for x in t) == 2 and sum(t) <= m:       # ровно два трёхзначных и сумма не больше порога
        cnt += 1                                            # тройка подходит
        best = max(best, sum(t))                            # обновляем максимум сумм
print(cnt, best)                                            # ответ
Ответ зависит от файла с экзамена.

Пример 3

В файле содержится последовательность целых чисел, каждое от −10 000 до 10 000, по одному в строке. Определите количество пар соседних элементов, произведение которых отрицательно, а сумма кратна 7. В ответе запишите количество таких пар, затем минимальную из сумм их элементов.
Показать решение
1. Произведение отрицательно, когда числа разных знаков (и ни одно не равно нулю). 2. В Python остаток от деления отрицательного числа на 7 неотрицательный, поэтому проверка s % 7 == 0 работает и для отрицательных сумм.
a = [int(x) for x in open('17.txt')]       # все числа файла
cnt, low = 0, 10**9                        # количество пар и минимальная сумма
for i in range(len(a) - 1):                # i — левый элемент пары
    x, y = a[i], a[i + 1]                  # пара соседей
    if x * y < 0 and (x + y) % 7 == 0:     # разные знаки и сумма кратна 7
        cnt += 1                           # пара подходит
        low = min(low, x + y)              # обновляем минимальную сумму
print(cnt, low)                            # ответ
Ответ зависит от файла с экзамена.

Не получается задание 17? Разберём на пробном уроке

Бесплатно покажем, как решать задание 17 и похожие, определим пробелы и составим план подготовки к ЕГЭ.

Записаться бесплатно

Все задания ЕГЭ по информатике

Структура экзамена, баллы и темы — на странице программы ЕГЭ по информатике