Задание №4371. Файл, необходимый для выполнения задания: ссылка для скачивания. В файле содержится последовательность натуральных чисел, каждое из которых не превышает 100 000. Определите количество троек элементов последовательности, в которых ровно два из трёх элементов являются трёхзначными числами, а сумма элементов тройки не больше максимального элемента последовательности, оканчивающегося на 13. Гарантируется, что в последовательности есть хотя бы одно число, оканчивающееся на 13. В ответе запишите количество найденных троек чисел, затем максимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.

Задание №4371.
Составление алгоритма обработки числовой последовательности. ЕГЭ по информатике

Файл, необходимый для выполнения задания: ссылка для скачивания.

В файле содержится последовательность натуральных чисел, каждое из которых не превышает 100 000. Определите количество троек элементов последовательности, в которых ровно два из трёх элементов являются трёхзначными числами, а сумма элементов тройки не больше максимального элемента последовательности, оканчивающегося на 13.
Гарантируется, что в последовательности есть хотя бы одно число, оканчивающееся на 13.

В ответе запишите количество найденных троек чисел, затем максимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.

Пояснение:
Решим задание, написав программу на языке программирования Python.

final = []

with open('17_2024.txt', encoding='utf8') as numbers: # в первом аргументе указывается путь к файлу

    numbers = numbers.read().splitlines()

    max_number_that_ends_on_13 = max([int(i) for i in numbers if i[-2:] == '13'])

    for x in range(len(numbers)-2):
        three_numbers = [numbers[x], numbers[x+1], numbers[x+2]]
        three_digit_numbers = [len(i) for i in three_numbers if len(i) == 3]
        sum_of_three_numbers = sum([int(i) for i in three_numbers])

        if len(three_digit_numbers) == 2 and sum_of_three_numbers <= max_number_that_ends_on_13:
            final.append((int(numbers[x]), int(numbers[x+1]), int(numbers[x+2])))

print(len(final), max(sum(i) for i in final))

Таким образом, 959 — количество найденных троек чисел, а 97471 — максимальная из сумм элементов таких троек.

Показать ответ

Источник: ФИПИ. Открытый банк тестовых заданий
Сообщить об ошибке


Тест с похожими заданиями