Условие: № 8554 (Уровень: Средний)
• Статья подготовлена командой itpy
• Полный разбор задачи в Telegram
(В. Рыбальченко) В файле 9.xlsx в каждой строке содержится 5 целых чисел. Необходимо посчитать количество строк, в которых выполняется оба условия:
– Ровно три числа заканчиваются цифрой 3;
– Квадрат суммы положительных чисел меньше квадрата суммы отрицательных чисел.
В ответ запишите только число.
Файлы к заданию: 9.xlsx
Решение через Python и комментарии к нему:
Комментарии к коду решения:
- 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, суммы положительных и отрицательных чисел, и выводит количество строк, удовлетворяющих этим условиям.