Задание №9 ЕГЭ Информатика с ответом и решением
Ответ: 118
Условие
Откройте файл электронной таблицы, содержащей в каждой строке четыре натуральных числа.
Определите количество строк таблицы, содержащих числа, для которых выполнены оба условия:
— наименьшее из четырёх чисел более чем в шесть раз меньше суммы трёх других;
— произведение наибольшего и наименьшего числа больше произведения оставшихся чисел.
В ответе запишите только число.
Подсказки — как подойти к решению
- Найди в строке минимум, максимум и два средних числа. «Более чем в шесть раз меньше» значит, что минимум, умноженный на шесть, строго меньше суммы трёх остальных — равенство не подходит, условие строгое.
- Второе условие про произведение: наибольшее число умножается на наименьшее и сравнивается с произведением двух средних, а не с их суммой. Оба условия должны выполняться одновременно, счётчик увеличивай только при их совместной истине.
Решение
Посчитаем количество ячеек, удовлетворяющих условиям. В ячейку E1 введем формулу =МИН(A1:D1) для нахождения минимального значения. Скопируем формулу на весь диапазон E1:E1000. В ячейку F1 введем формулу =СУММ(A1:D1)-МИН(A1:D1) для поиска суммы оставшихся трех чисел. Скопируем формулу на весь диапазон F1:F1000. В ячейку G1 введем формулу =ЕСЛИ(F1>6*E1;1;0) для поиска ячеек удовлетворяющих первому условию. Скопируем формулу на весь диапазон G1:G1000. Для поиска ячеек удовлетворяющих второму условию в ячейку H1 введем формулу:
=ЕСЛИ(МАКС(A1:D1)*МИН(A1:D1)>НАИБОЛЬШИЙ(A1:D1;2)*НАИМЕНЬШИЙ(A1:D1;2);1;0).
Cкопируем формулу на весь диапазон H1:H1000. Если значение в ячейках по столбцам G и H равны 1, то такая строка удовлетворяет двум условиям. Для поиска таких строк в ячейку I1 введем формулу:
=ЕСЛИ(И(G1=1;H1=1);1;0)
и скопируем формулу на весь диапазон I1:I1000. Теперь найдём количество строк, удовлетворяющих условию, введя формулу =СУММ(I1:I1000). Тогда ответ — 118.
Ответ: 118.
Приведём решение Андрианова Ильи на языке Python.
count = 0
for s in open('9.txt'):
M = sorted([int(i) for i in s.split()])
if (6 * M[0]) < (M[1] + M[2] + M[3]):
if (M[3] * M[0]) > (M[1] * M[2]):
count += 1
print(count)
Приведём решение Артёма Божко на языке Python.
f = open('9_58321.txt')
f = f.readlines()
sp = []
k = 0
for i in f:
sp.append(i.replace('\n', '').split())
for j in sp:
i = list(map(int, j))
i.sort()
a = int(i[0])
b = int(i[1])
c = int(i[2])
d = int(i[3])
if (a*6 < sum([b, c, d])) and (a*d > b*c):
k += 1
print(k)
Ответ: 118
Типичные ошибки
- Похоже, в одном из условий сравнивалось не то: во втором нужно произведение наибольшего и наименьшего против произведения двух средних чисел. Перепроверь, что учтены строки, подходящие по обоим условиям сразу.
В тренажёре: подсказки по шагам, разбор твоей ошибки ИИ-репетитором (он не даёт готовый ответ), повторение ошибок по интервалам и общий прогресс. Все задания №9 по информатике