Тип 9 № 63025
Откройте файл электронной таблицы, содержащей в каждой строке шесть натуральных чисел.
Определите количество строк таблицы, для чисел которых одновременно выполнены все следующие условия:
— в строке есть повторяющиеся числа;
— максимальное число в строке не повторяется;
— сумма всех повторяющихся чисел в строке больше максимального числа этой строки. При подсчёте суммы повторяющихся чисел каждое число учитывается столько раз, сколько оно встречается.
В ответе запишите число — количество строк, удовлетворяющих заданным условиям.
Комментарии к коду решения:
count = 0
- Инициализируем счетчик кол-ва строк.for s in open('9.txt'):
- Через цикл for пробегаем по всем строкам из файла'9.txt'
.M = sorted([int(x) for x in s.split()])
- Преобразуем строку в отсортированный список целых чисел.if len(M) != len(set(M)):
- Проверка: если в списке есть повторяющиеся элементы.if M.count(M[-1]) == 1:
- Проверка: если максимальный элемент встречается только один раз.copied = [x for x in M if M.count(x) > 1]
- Формирование списка повторяющихся элементов.if sum(copied) > M[-1]:
- Проверка: если сумма повторяющихся элементов больше максимального элемента.count += 1
- Если все вышеописанные условия верные, то увеличивает счетчик.print(count)
- Вывод значения счетчика на экран.
count = 0
for s in open('9.txt'):
M = sorted([int(x) for x in s.split()])
if len(M) != len(set(M)): # if M[-1] != M[-2]:
if M.count(M[-1]) == 1:
copied = [x for x in M if M.count(x) > 1]
if sum(copied) > M[-1]:
count += 1
print(count)
Аналогичное решение без сортировки элементов (через функцию max)