Тема 9. Работа с электронными таблицами

9.02 Количество строк, удовлетворяющих условию

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела работа с электронными таблицами
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#74931

Откройте файл электронной таблицы, содержащей в каждой строке пять натуральных чисел. Определите количество строк таблицы, содержащих числа, для которых выполнены оба условия:

— сумма повторяющихся чисел в строке больше, чем сумма неповторяющихся чисел;

— удвоенная сумма максимального и минимального чисел строки не больше суммы оставшихся трёх её чисел.

В ответе запишите только число.

Вложения к задаче
Показать ответ и решение

Решение Excel:

Откроем файл электронной таблицы и для начала посчитаем при помощи функции СЧЁТЕСЛИ сколько раз каждое число встречается в строке. Формула (запишем ее в столбец F) для первого числа будет выглядеть таким образом: =СЧЁТЕСЛИ($A1:$E1;A1). Протянем данную формулу на 4 следующих столбца G, H, I и J.

В столбцах K:O укажем числа, которые повторяются в строке. Для первого числа формула будет выглядеть так: =ЕСЛИ(F1>1;A1;0).

В столбцах P:T укажем числа, которые встречаются в строке единожды. Для первого числа формула будет выглядеть так: =ЕСЛИ(F1=1;A1;0).

Проверим, что сумма повторяющихся чисел больше суммы неповторяющихся чисел. Для этого запишем формулу в столбец U: =ЕСЛИ(СУММ(K1:O1)>СУММ(P1:T1);1;0).

Проверим, что удвоенная сумма максимального и минимального числа в строке не больше суммы оставшихся чисел. Для этого запишем формулу в столбец V: =ЕСЛИ(2*(МАКС(A1:E1)+МИН(A1:E1))<=СУММ(A1:E1)-МАКС(A1:E1)-МИН(A1:E1);1;0).

Осталось проверить, что два условия выполняются одновременно для строки. Для этого запишем формулу в столбец W: =ЕСЛИ(U1+V1=2;1;0). Считаем сумму столбца W и получаем 73.

Решение программой:

f = open(’9.txt’, ’r’)
lines = f.readlines()

count = 0

for line in lines:
    nums = list(map(int, line.split()))
    repeats = [n for n in nums if nums.count(n) > 1]
    uniques = [n for n in nums if nums.count(n) == 1]
    if sum(repeats) <= sum(uniques):
        continue

    max_num = max(nums)
    min_num = min(nums)
    remaining_sum = sum(nums) - max_num - min_num
    if 2 * (max_num + min_num) <= remaining_sum:
        continue

    count += 1

print(count)


Ответ: 73

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение

Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!