17.01 Обработка пар элементов последовательности
Ошибка.
Попробуйте повторить позже
В файле содержится последовательность из 5000 положительных целых чисел. Каждое число не превышает 10000. Определите и запишите в ответе через пробел сначала количество пар элементов последовательности, у которых абсолютная разность элементов кратна 45 и хотя бы один из элементов кратен 18, затем максимальную из абсолютных разностей элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
Решение программой
Напишем программу, которая будет проверять все пары соседних чисел из файла, подсчитывая те, у которых абсолютная разность элементов кратна 45 и хотя бы один из элементов кратен 18. Для проверки первого условия будем находить абсолютную разность пары и проверять остаток от деления на 45. Если остаток равен 0, разность кратна 45. Для проверки второго условия будем проверять остаток от деления каждого элемента пары на 18. Если хотя бы один остаток равен 0, условие выполняется. Количество таких пар и максимальную абсолютную разность будем сохранять в отдельный список, чтобы после завершения перебора вывести количество и максимальную разность.
# открываем файл с числами f = open("17_1.txt") # считываем все строки из файла и преобразуем в список целых чисел a = [int(i) for i in f] # создаём пустой список для хранения абсолютных разностей подходящих пар ans = [] # перебираем все соседние пары элементов for i in range(len(a) - 1): # вычисляем абсолютную разность и проверяем два условия: # 1) разность кратна 45 # 2) хотя бы один элемент кратен 18 if (abs(a[i] - a[i+1]) % 45 == 0) and (a[i] % 18 == 0 or a[i+1] % 18 == 0): # добавляем абсолютную разность в список подходящих ans += [abs(a[i] - a[i+1])] # выводим количество подходящих пар и максимальную абсолютную разность среди них print(len(ans), max(ans))
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

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

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

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

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

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!