Тип 9 № 76677 
Работа с таблицами. Задания для подготовки
i
В каждой строке электронной таблицы записаны восемь натуральных чисел.
Число в строке считается заметным, если оно строго больше среднего арифметического всех чисел строки.
Определите количество строк таблицы, для которых одновременно выполнены следующие условия:
— количество заметных чётных чисел в строке больше количества заметных нечётных чисел в строке;
— сумма всех чётных чисел строки меньше суммы всех нечётных чисел строки.
Задание 9
Решение. Приведём решение Юрия Красильникова.
В столбце I вычислим среднее арифметическое чисел. Введем в ячейку I1 формулу =СУММ(A1:H1)/8 и скопируем ее до конца списка.
В столбцы J:Q внесем остатки от деления заметных чисел на 2. В ячейку K1 введем формулу =ЕСЛИ(A1>$I1;ОСТАТ(A1;2);"") и скопируем её в ячейки J1:Q10000
В столбцы R:Y скопируем чётные числа из диапазона A:H. Введём в ячейку R1 формулу =ЕСЛИ(ОСТАТ(A1;2)=0;A1;"") и скопируем её в ячейки R1:Y10000
В столбце Z проверим первое условие, внесем в ячейку Z1 формулу =ЕСЛИ(СЧЁТЕСЛИ(J1:Q1;0)>СЧЁТЕСЛИ(J1:Q1;1);1;0)
В столбце AA проверим второе условие, внесём в ячейку AA1 формулу =ЕСЛИ(СУММ(R1:Y1)<СУММ(A1:H1)-СУММ(R1:Y1);1;0)
В столбце AB найдем произведение условий, внесем в ячейку AB1 формулу =Z1*AA1 и скопируем до конца списка.
В ячейку AC1 внесем формулу =СУММ(AB:AB) и получим ответ 232.
Приведём решение Бориса Савельева на языке Python.
f=open('09.txt')
k=0
for i in f:
a=list(map(int,i.split()))
sr=sum(a)/len(a)
chz=nchz=sum1=sum2=0
for j in range (0,len(a)):
if a[j]%2==0:
if a[j] > sr:
chz+=1
sum1+=a[j]
else:
if a[j] > sr:
nchz+=1
sum2+=a[j]
if chz > nchz and sum1 < sum2:
k+=1
print(k)
Примечание. Файл следует сохранить в формате txt.
Ответ: 232.
Приведём решение Анастасии Игнатьевой на языке Python.
f=open('09.txt')
count=0
for s in f:
a=[int(x) for x in s.split()]
srz=sum(a)/8
a_z=[a[i] for i in range(len(a)) if a[i]>srz]
a_z_ch=[a_z[i] for i in range(len(a_z)) if a_z[i]%2==0]
a_z_nch=[a_z[i] for i in range(len(a_z)) if a_z[i]%2==1]
s1,s2=0,0
for i in range(len(a)):
if a[i]%2==0:
s1+=a[i]
else:
s2+=a[i]
if len(a_z_ch) > len(a_z_nch) and s1 < s2:
count+=1
print(count)
Примечание. Файл следует сохранить в формате txt.
Приведём решение Юрия Красильникова на языке Python.
f = open('09.csv')
k = 0
for s in f:
a = list(map(int,s.split(';')))
sa = sum(a)/len(a)
zam = [x for x in a if x > sa]
u1 = len([x for x in zam if x%2 == 0]) > len([x for x in zam if x%2 == 1])
u2 = sum([x for x in a if x%2 == 0]) < sum([x for x in a if x%2 == 1])
if u1 and u2: k += 1
print(k)
Примечание. Файл следует сохранить в формате scv.
Ответ: 232