Тема 17. Обработка числовой последовательности

17.01 Обработка пар элементов последовательности

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

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

Задача 1#29806

В файле(dz17-14.txt) содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от –1000 до 1000 включительно. Определите и запишите в ответе сначала количество пар элементов последовательности, в которых чётность чисел различна, при этом чётное число делится на 6, а нечётное на 13, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

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

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

Программа последовательно перебирает все пары соседних чисел из файла. Для каждой пары сначала проверяется, что числа имеют разную чётность — то есть одно из них чётное, а другое нечётное.

Далее, если первое число в паре чётное, проверяется, что оно делится на 6 без остатка, а второе число (нечётное) делится на 13. Если это условие выполняется, пара подходит — увеличиваем счётчик и обновляем максимум суммы.

Если же первое число нечётное, проверяется, что оно делится на 13, а второе (чётное) — делится на 6. В этом случае также учитываем пару и обновляем максимальную сумму.

Таким образом, программа находит количество пар с разной чётностью, где чётное число кратно 6, а нечётное — кратно 13, и среди таких пар определяет максимальную сумму элементов.

# Открываем файл и считываем числа в список
f = open(’dz17-14.txt’)
s = [int(_) for _ in f]

# Инициализируем счётчик подходящих пар
counter = 0
# Инициализируем переменную для максимальной суммы
maxim = -10 ** 10

# Перебираем все пары подряд идущих чисел
for i in range(len(s) - 1):
    # Проверяем, что числа имеют разную чётность
    if s[i] % 2 != s[i + 1] % 2:
        # Если первое число чётное и делится на 6, а второе нечётное и делится на 13
        if s[i] % 2 == 0 and s[i] % 6 == 0 and s[i + 1] % 13 == 0:
            counter += 1
            maxim = max(maxim, s[i] + s[i + 1])
        # Если первое число нечётное и делится на 13, а второе чётное и делится на 6
        elif s[i] % 2 != 0 and s[i] % 13 == 0 and s[i + 1] % 6 == 0:
            counter += 1
            maxim = max(maxim, s[i] + s[i + 1])

# Выводим количество подходящих пар и максимальную сумму
print(counter, maxim)

Ответ: 110 1683

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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