В каждой строке электронной таблицы записаны пять целых положительных чисел. Определите, сколько в таблице строк, для которых выполнены следующие условия:
— все числа в строке различны;
— нечётных чисел больше, чем чётных;
— сумма нечётных чисел меньше суммы чётных.
В ответе запишите число — количество строк, для которых выполнены эти условия.
Решение. Сначала определим, сколько раз число встречается в строке, для этого
=ЕСЛИ(СЧЁТЕСЛИ($A1:$E1;A1)=1;1;0)
и скопируем её во все ячейки
Отдельно выпишем все четные и нечетные числа в строке.
Сначала выпишем четные числа. Для этого
=ЕСЛИ(ЕЧЁТН(A1)=ИСТИНА;A1;0)
и скопируем её во все ячейки
Теперь выпишем нечетные числа. Для этого
=ЕСЛИ(НЕ(ЕЧЁТН(A1))=ИСТИНА;A1;0)
и скопируем её во все ячейки
=ЕСЛИ(СУММ(L1:P1)>СУММ(Q1:U1);1;0)
и скопируем её во все ячейки
=ЕСЛИ(И(K1=5;X1=1;Y1=1);1;0)
и скопируем её во все ячейки
Окончательно с помощью формулы
Ответ: 303.
Приведём решение Ильи Андрианова на языке Python.
count = 0
for s in open('9.txt'):
M = [int(x) for x in s.split()]
if len(M) == len(set(M)): # — все числа в строке различны;
chet = [x for x in M if x % 2 == 0]
nechet = [x for x in M if x % 2 != 0]
if len(nechet) > len(chet):
if sum(nechet) < sum(chet):
count += 1
print(count)
Примечание. Файл следует сохранить в формате txt.
Приведём решение Юрия Красильникова на языке Python.
count = 0
for s in open('09.csv'):
a = list(map(int,s.split(';')))
aodd = [x for x in a if x%2==1]
if len(a) == len(set(a)) and len(aodd)>2 and 2*sum(aodd) < sum(a):
count += 1
print(count)
Примечание. Файл следует сохранить в формате csv.
Приведём решение Артёма Гридина на языке Python.
print([True if len(set(y)) == 5 and len([n for n in y if n%2 != 0]) > 3 and sum([n for n in y if n%2 != 0]) < sum([n for n in y if n%2 == 0]) else False for y in tuple(map(lambda x: sorted(tuple(map(int, x.split(';')))), open('09.csv').read().splitlines()))].count(True))
Примечание. Файл следует сохранить в формате csv.
Приведём решение Сергея Донец на языке PascalABC.NET.
uses XLSX;
begin
var a:=ReadXLSXAsInts('09.xlsx');
var k:=0;//количество строк
foreach var x in a do
if x.Distinct.Count=x.Count
then begin
var nech:=x.Where(n->n.isOdd).ToArray;
var chet:=x.Where(n->n.isEven).ToArray;
if nech.Count>chet.Count
then if nech.Sum < chet.Sum
then k+=1;
end;
Println(k);
end.
Примечание. Файл следует сохранить в формате xlsx.
PDF-версии: 