№ 2491 (Уровень: Базовый)
В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от –10 000 до 10 000 включительно. Определите количество троек, в которых хотя бы один из трёх элементов меньше, чем среднее арифметическое всех чисел в файле, и десятичная запись всех трёх элементов тройки содержит цифру 9. В ответе запишите два числа: сначала количество найденных троек, а затем – максимальную сумму элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
Файлы к заданию: 17.txt
Комментарии к коду решения:
M = [int(x) for x in open('17.txt')]
- считывает все числа из файла '17.txt' и сохраняет их в виде списка M, преобразуя каждое число в целое.avg = sum(M) / len(M)
- вычисляет среднее значение всех чисел в списке M.R = []
- создает пустой список R, в который будут добавляться результаты.Цикл for i in range(len(M)-2):
проходит по всем элементам списка M, за исключением последних двух элементов.x, y, z = M[i], M[i+1], M[i+2]
- присваивает значения ткущего элемента M[i], следующего элемента M[i+1] и элемента через один M[i+2] переменным x, y и z соответственно.Условие if x < avg or y < avg or z < avg:
проверяет, выполняется ли хотя бы одно из условий: значение x, y или z меньше среднего значения avg.if all('9' in str(a) for a in [x, y, z]):
- проверяет, содержит ли каждое из чисел x, y и z цифру '9'.- Если оба условия выполняются, то значение x + y + z добавляется в список R.
print(len(R), max(R))
- выводит на экран количество элементов в списке R и максимальное значение из списка R.Таким образом, данный код считывает числа из файла, вычисляет среднее значение, проверяет числа по заданным условиям и выводит количество элементов и максимальное значение, удовлетворяющее условиям.
M = [int(x) for x in open('17.txt')]
avg = sum(M) / len(M)
R = []
for i in range(len(M)-2):
x, y, z = M[i], M[i+1], M[i+2]
if x < avg or y < avg or z < avg:
if all('9' in str(a) for a in [x, y, z]):
R.append(x + y + z)
print(len(R), max(R))