В каждой строке электронной таблицы записаны пять целых положительных чисел. Определите, сколько в таблице строк, для которых выполнены следующие условия:
— все числа в строке различны;
— нечётных чисел больше, чем чётных;
— сумма нечётных чисел меньше суммы чётных.
В ответе запишите число — количество строк, для которых выполнены эти условия.
Сначала определим, сколько раз число встречается в строке, для этого
=ЕСЛИ(СЧЁТЕСЛИ($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.
В каждой строке электронной таблицы записаны пять натуральных чисел.
Определите, сколько в таблице строк, для которых выполнены следующие условия:
— все числа в строке различны;
— чётных чисел больше, чем нечётных;
— сумма чётных чисел меньше суммы нечётных.
В ответе запишите число — количество строк, для которых выполнены эти условия.
Сначала будем проверять, сколько раз в строке встречается число. Для этого
=СЧЁТЕСЛИ($A1:$E1;A1)
и скопируем её во все ячейки
=ОСТАТ(A1;2)
и скопируем её во все ячейки
=СУММ(L1:P1).
Если сумма
=СУММЕСЛИ(L1:P1;0;A1:E1)
и скопируем её во все ячейки
=СУММЕСЛИ(L1:P1;1;A1:E1)
и скопируем её во все ячейки
=ЕСЛИ(S1>R1;1;0)
и скопируем её во все ячейки
=ЕСЛИ(И(T1=1;K1=5;Q1<3);1;0)
и скопируем её во все ячейки
Окончательно с помощью формулы
Ответ: 241.
Приведём решение Николая Аксенова на языке Python.
with open('09.txt') as file:
count=0
for line in file:
n = list(map(int, line.split()))
n.sort()
if len(set(n)) == len(n) and \
sum(x % 2 == 0 for x in n) > sum(x % 2 != 0 for x in n) and \
sum(x for x in n if x % 2 == 0) < sum(x for x in n if x % 2 != 0):
count += 1
print(count)
Примечание. Приведенный файл требуется сохранить как текстовый документ.
Приведём решение Бориса Савельева на языке Python.
f=open('09.txt')
k=0
for i in f:
a=list(map(int,i.split()))
if len(set(a))==len(a):
kch=knch=sumch=sumnch=0
for j in range (0,len(a)):
if a[j]%2==0:
kch+=1
sumch+=a[j]
else:
knch+=1
sumnch+=a[j]
if (kch > knch) and (sumch < sumnch):
k+=1
print(k)
Примечание. Приведенный файл требуется сохранить как текстовый документ.
Приведём решение Сергея Донец на языке PascalABC.NET.
uses XLSX;
begin
var a:=ReadXLSXAsInts('52180.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 chet.Count > nech.Count
then if chet.Sum < nech.Sum
then k+=1;
end;
Println(k);
end.
Примечание. Файл следует сохранить в формате xlsx.
Наверх

