Задача с сайта https://kpolyakov.spb.ru/
В файле электронной таблицы 9-227.xls в каждой строке записаны четыре натуральных числа. Определите количество строк таблицы, для которых выполнены следующие условия:
– только одно число встречается в строке дважды;
– сумма двух самых больших чисел строки более чем в два раза больше суммы двух самых малых;
– максимальное число строки не кратно минимальному.
В ответе запишите только число.
Решение в Excel
В ячейку запишем формулу:
и растянем вправо до ячейки
включительно, а также вниз до конца таблицы.
В ячейку запишем формулу:
и растянем ее вправо до ячейки
включительно, меняя второй аргумент функции с 1 на 2, 3 и 4 соответственно и вниз до конца таблицы.
В столбцах и
найдем сумму двух самых больших и сумму двух самых маленьких чисел в строке. Для этого в ячейки
и
запишем соответственно формулы:
и растянем их вниз до конца таблицы.
В столбце проверим выполнение первого условия и в ячейку
запишем формулу:
и растянем ее вниз до конца таблицы.
В столбце проверим выполнение второго условия и в ячейку
запишем формулу:
В столбце
проверим выполнение третьего условия и в ячейку
запишем формулу:
Для того, чтобы выполнялись сразу три условия, произведение ячеек
,
и
должно быть равно 1. Для этого запишем формулу в ячейку
:
и растянем ее вниз до конца таблицы.
Выделяем столбец и получаем ответ 125.
Программное решение
f = open(’9-227.csv’)
c = 0
for i in f:
a = sorted(list(map(int, i.split(’;’))))
# Проверяем три условия:
# 1. Уникальных элементов в списке a должно быть ровно 3
# 2. Сумма двух наибольших элементов должна быть больше удвоенной
# суммы двух наименьших элементов
# 3. Четвертый по величине элемент не должен быть кратен наименьшему элементу
if (len(set(a)) == 3) and (a[2] + a[3] > (a[0] + a[1]) * 2)
and (a[3] % a[0] != 0):
c += 1 # Если все условия выполнены, увеличиваем счетчик c на 1
print(c)