Разбор  9.PNG

№ 8554 (Уровень: Средний)

**(В. Рыбальченко)** В файле 9.xlsx в каждой строке содержится 5 целых чисел. Необходимо посчитать количество строк, в которых выполняется оба условия:

– Ровно три числа заканчиваются цифрой 3;

– Квадрат суммы положительных чисел меньше квадрата суммы отрицательных чисел.

В ответ запишите только число.

Файлы к заданию: 9.xlsx


Untitled

Комментарии к коду решения:

  1. cnt = 0 - инициализирует переменную cnt значением 0. Эта переменная будет использоваться для подсчета количества подходящих строк.
  2. Цикл for s in open('9.txt'): проходит по каждой строке в файле '9.txt'.
  3. M = [int(x) for x in s.split()] - разбивает строку s на отдельные элементы, преобразует их в целые числа и сохраняет в виде списка M.
  4. if len([x for x in M if abs(x) % 10 == 3]) == 3: - проверяет, содержит ли список M ровно 3 элемента, у которых модуль деления на 10 равен 3.
  5. A = [x for x in M if x > 0] - создает список A, содержащий только положительные числа из списка M.
  6. B = [x for x in M if x < 0] - создает список B, содержащий только отрицательные числа из списка M.
  7. if sum(A) ** 2 < sum(B) ** 2: - сравнивает квадрат суммы положительных чисел с квадратом суммы отрицательных чисел. Если квадрат суммы положительных чисел меньше квадрата суммы отрицательных чисел, то увеличивает счетчик cnt на 1.
  8. 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

Untitled