Определите сумму номеров всех строк таблицы, содержащих числа, для которых выполнены оба условия:
Решение на Python
Шаг 1. Чтение строк файла и нумерация
f = open('9.txt')
for i, line in enumerate(f, start=1):
print(i, line)
break
📌 Результат: для каждой строки получаем её номер и содержимое (на примере первой строки).
Шаг 2. Преобразование строки в список чисел
f = open('9.txt')
for i, line in enumerate(f, start=1):
nums = list(map(int, line.split()))
print(i, nums)
break
📌 Результат: строка превращается в список целых чисел, например [3, 7, 10, 2, 6].
Шаг 3. Все числа в строке различны
f = open('9.txt')
for i, line in enumerate(f, start=1):
nums = list(map(int, line.split()))
print(i, nums, 'различны?', len(set(nums)) == 4)
break
📌 Результат: оставляем только строки, где четыре разных числа.
Шаг 4. Квадрат суммы max и min больше суммы кубов остальных
f = open('9.txt')
for i, line in enumerate(f, start=1):
nums = list(map(int, line.split()))
if len(set(nums)) != 4:
continue
mx, mn = max(nums), min(nums)
rest = list(nums)
rest.remove(mx)
rest.remove(mn)
left = (mx + mn) ** 2
right = rest[0] ** 3 + rest[1] ** 3
print(i, nums, left, '>', right, '?', left > right)
break
📌 Результат: если условие выполнено, добавляем номер строки к сумме.
Шаг 5. Проверка условия и получение ответа
# Таблица уже сохранена в файле 9.txt. Открываем его и задаём total
f = open('9.txt')
total = 0
# Читаем строки с номерами и проверяем, что все числа различны
for i, line in enumerate(f, start=1):
nums = list(map(int, line.split()))
if len(set(nums)) != 4:
continue
# Находим max, min и два оставшихся числа
mx = max(nums)
mn = min(nums)
rest = list(nums)
rest.remove(mx)
rest.remove(mn)
# Если квадрат суммы max и min больше суммы кубов остальных — добавляем номер строки
if (mx + mn) ** 2 > rest[0] ** 3 + rest[1] ** 3:
total += i
# Выводим total — сумму номеров подходящих строк. Жми RUN
print(total)
Перебираем все строки. Если оба условия выполнены, прибавляем номер строки. В конце выводим сумму номеров подходящих строк.
📌 Ответ: 58398.
Решение. Сначала проверим, что все числа в строке различны. В ячейку E1 введём:
=СЧЁТЕСЛИ($A1:$D1;A1)
и скопируем по строке до H1, затем вниз до строки 3200.
В I1 — признак «все различны»:
=ЕСЛИ(СЧЁТЕСЛИ(E1:H1;1)=4;1;0)
Второе условие: квадрат суммы наибольшего и наименьшего больше суммы кубов оставшихся. В J1:
=ЕСЛИ(И(I1=1;(МАКС(A1:D1)+МИН(A1:D1))^2>A1^3+B1^3+C1^3+D1^3-МАКС(A1:D1)^3-МИН(A1:D1)^3);1;0)
В столбце K запишем номер подходящей строки (иначе — 0):
=ЕСЛИ(J1=1;СТРОКА();0)
Скопируем формулы вниз до строки 3200, включим фильтр по столбцу J (значение 1).
Сумму номеров получим формулой =СУММ(K1:K3200).
Сумма номеров всех подходящих строк — 58398.
В ответе запишите только число — 58398.