№ 8554 (Уровень: Средний)
**(В. Рыбальченко)** В файле 9.xlsx в каждой строке содержится 5 целых чисел. Необходимо посчитать количество строк, в которых выполняется оба условия:
– Ровно три числа заканчиваются цифрой 3;
– Квадрат суммы положительных чисел меньше квадрата суммы отрицательных чисел.
В ответ запишите только число.
Файлы к заданию: 9.xlsx
Комментарии к коду решения:
cnt = 0
- инициализирует переменную cnt значением 0. Эта переменная будет использоваться для подсчета количества подходящих строк.- Цикл
for s in open('9.txt'):
проходит по каждой строке в файле '9.txt'.M = [int(x) for x in s.split()]
- разбивает строку s на отдельные элементы, преобразует их в целые числа и сохраняет в виде списка M.if len([x for x in M if abs(x) % 10 == 3]) == 3:
- проверяет, содержит ли список M ровно 3 элемента, у которых модуль деления на 10 равен 3.A = [x for x in M if x > 0]
- создает список A, содержащий только положительные числа из списка M.B = [x for x in M if x < 0]
- создает список B, содержащий только отрицательные числа из списка M.if sum(A) ** 2 < sum(B) ** 2:
- сравнивает квадрат суммы положительных чисел с квадратом суммы отрицательных чисел. Если квадрат суммы положительных чисел меньше квадрата суммы отрицательных чисел, то увеличивает счетчик cnt на 1.print(cnt)
- выводит на экран количество строк, которые удовлетворяют всем условиям в цикле.Итак, данный код считывает строки из файла '9.txt', проверяет условия наличия трех элементов с модулем деления на 10 равным 3, суммы положительных и отрицательных чисел, и выводит количество строк, удовлетворяющих этим условиям.
cnt = 0
for s in open('9.txt'):
M = [int(x) for x in s.split()]
if len([x for x in M if abs(x) % 10 == 3]) == 3:
A = [x for x in M if x > 0]
B = [x for x in M if x < 0]
if sum(A) ** 2 < sum(B) ** 2:
cnt += 1
print(cnt)
Присоединяйтесь и готовьтесь с нами: t.me/informatika_kege_itpy