Задание повышенного уровня, требующее составления алгоритма обработки числовой последовательности и его реализации на языке программирования. На выполнение отводится около 14 минут.
Условие задачи
Файл содержит последовательность целых чисел от -10000 до 10000 включительно. Необходимо определить количество пар последовательности, в которых только одно число оканчивается на 3, а сумма квадратов элементов пары не меньше квадрата максимального элемента последовательности, оканчивающегося на 3. В ответе нужно записать два числа: количество найденных пар и максимальную сумму квадратов элементов таких пар. Парой считается два идущих подряд элемента последовательности.
Решение задачи
Решение задачи включает следующие шаги:
- Чтение данных: Считываем числа из файла 17.txt построчно и преобразуем их в целочисленный тип. Используем менеджер контекста with для автоматического закрытия файла.
with open('17.txt', 'r') as f:
data = [int(line) for line in f]
- Поиск максимального квадрата: Находим квадрат максимального числа в последовательности, оканчивающегося на 3.
sqrt_max_list = [x**2 for x in data if abs(x) % 10 == 3]
sqrt_max = max(sqrt_max_list) if sqrt_max_list else 0
- Обработка пар: Перебираем пары соседних элементов и проверяем условия:
- Только одно число в паре оканчивается на 3.
- Сумма квадратов элементов пары >= sqrt_max.
answer_list = []
for i in range(len(data) - 1):
cond1 = (abs(data[i]) % 10 == 3 and abs(data[i+1]) % 10 != 3) or \n (abs(data[i]) % 10 != 3 and abs(data[i+1]) % 10 == 3)
cond2 = data[i]**2 + data[i+1]**2 >= sqrt_max
if cond1 and cond2:
answer_list.append(data[i]**2 + data[i+1]**2)
- Вывод результата: Выводим количество найденных пар и максимальную сумму квадратов.
print(len(answer_list), max(answer_list) if answer_list else 0)
Алгоритм, реализованный на языке Python, эффективно решает задачу, обрабатывая данные из файла, проверяя условия и выводя результат. Решение типично для заданий 17 ЕГЭ по информатике.