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


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

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

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

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

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

final = []

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

    numbers = numbers.read().splitlines()

    min_3_digit_number_that_ends_on_15 = min([int(i) for i in numbers if i[-2:] == '15' and len(i) == 3])

    for x in range(len(numbers)-2):
        three_numbers = [numbers[x], numbers[x+1], numbers[x+2]]

        if all(i[0] == '-' for i in three_numbers) or all(i[0] != '-' for i in three_numbers):
            numbers_of_the_same_sign = True
        else:
            numbers_of_the_same_sign = False

        if numbers_of_the_same_sign and min(map(int, three_numbers))*max(map(int, three_numbers)) > min_3_digit_number_that_ends_on_15 ** 2:
            final.append((int(numbers[x]), int(numbers[x+1]), int(numbers[x+2])))

print(len(final), min(max(i)*min(i) for i in final))

Таким образом, 3533 — количество найденных троек, а 143360минимальное из произведений максимального и минимального элементов таких троек.

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

Источник: Открытый вариант — 2025
Сообщить об ошибке


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