Предмет: Информатика, автор: moon455808

В файле 17.txt содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от –10 000 до 10 000 включительно. Определите количество троек, в которых хотя бы один из трёх элементов меньше, чем среднее арифметическое всех чисел в файле, и десятичная запись хотя бы одного из трёх элементов оканчивается на 6. В ответе запишите два числа: сначала количество найденных троек, а затем – максимальную сумму элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.

Приложения:

Ответы

Автор ответа: vimmortal2
2

Программа:
Python:

path = '17.txt'

with open(path) as f:

   file = [int(x) for x in f.readlines()]

average = sum(file) / len(file)

maxnum, count = -10000, 0

for i in range(len(file) - 2):

   endingCheck = (abs(file[i]) % 10 == 6) + (abs(file[i + 1]) % 10 == 6) + (abs(file[i + 2]) % 10 == 6)

   averageCheck = (file[i] < average) + (file[i + 1] < average) + (file[i + 2] < average)

   if averageCheck >= 2 and endingCheck > 0:

       count += 1

       maxnum = max(maxnum, file[i] + file[i + 1] + file[i + 2])

print(count, maxnum)

Вывод: 2411 17979


Объяснение:
В начале происходит чтение файла по указанному в переменной path пути и запись строк в переменную file. Далее - находим среднее значение цифр и записываем его в переменную average. Для будущего регистрируем переменную maxnum с минимальным значением -10000 и переменную count, где будет хранится количество троек. После - с помощью цикла пробегаемся по элементам массива. В переменной endingCheck определяется кол-во чисел, окончание у которых равно 6. В averageCheck - кол-во чисел, которые меньше среднего значения в массиве. Потом с помощью оператора if выполняем действия согласно условию: если количество чисел, которые меньше среднего арифметического больше нуля (то есть есть хотя бы один) и если хотя бы у одного из чисел последняя цифра 6, то увеличиваем значение переменной count на 1 и переменной maxnum присваиваем максимальное число из текущего максимального и суммы этих троек.

Похожие вопросы
Предмет: Українська мова, автор: Русланчока
Предмет: Химия, автор: Аноним
Предмет: Информатика, автор: sanns71