Найти в Дзене

Разбор номера 23201 #КЕГЭ по информатике #ЕГЭ17

Автор: Основная волна 10.06.25
Уровень: Базовый Условие задачи: Определите количество пар последовательности, в которых только один из элементов является трёхзначным числом, a сумма элементов пары кратна минимальному трёхзначному элементу последовательности, оканчивающемуся на 7. В ответе запишите количество найденных пар, затем минимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности. Код решения: Ответ: 9 107 Комментарии к коду: M = [int(x) for x in open('17.txt')]
Читаем файл '17.txt', преобразуем каждую строку в целое число и создаем список M A = [x for x in M if len(str(abs(x))) == 3]
Создаем список A из чисел M, которые являются трехзначными (учитываем модуль для отрицательных) B = [x for x in A if abs(x) % 10 == 7]
Создаем список B из чисел A, которые оканчиваются на 7 (учитываем модуль для отрицательных) R = []
Создаем пустой список R для хранения сумм пар, удовлетворяющих условиям for i in range(len(M)-1):
Оглавление

Автор: Основная волна 10.06.25
Уровень: Базовый

Условие задачи:

Определите количество пар последовательности, в которых только один из элементов является трёхзначным числом, a сумма элементов пары кратна минимальному трёхзначному элементу последовательности, оканчивающемуся на 7. В ответе запишите количество найденных пар, затем минимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

Код решения:

Ответ: 9 107
Ответ: 9 107

Комментарии к коду:

  1. M = [int(x) for x in open('17.txt')]
    Читаем файл '17.txt', преобразуем каждую строку в целое число и создаем список M
  2. A = [x for x in M if len(str(abs(x))) == 3]
    Создаем список A из чисел M, которые являются трехзначными (учитываем модуль для отрицательных)
  3. B = [x for x in A if abs(x) % 10 == 7]
    Создаем список B из чисел A, которые оканчиваются на 7 (учитываем модуль для отрицательных)
  4. R = []
    Создаем пустой список R для хранения сумм пар, удовлетворяющих условиям
  5. for i in range(len(M)-1):
    Перебираем индексы i от 0 до предпоследнего элемента списка M
  6. x, y = M[i], M[i+1]
    Присваиваем x текущий элемент M[i], y - следующий элемент M[i+1]
  7. if (x in A) + (y in A) == 1:
    Проверяем, что только один из двух элементов (x или y) является трехзначным числом
  8. if (x + y) % min(B) == 0:
    Проверяем, что сумма пары x+y делится нацело на минимальное число из списка B
  9. R.append(x + y)
    Если оба условия выполнены, добавляем сумму пары в список R
  10. print(len(R), min(R))
    Выводим количество найденных пар и минимальную сумму среди этих пар
Больше разборов на эту и другие задачи вы можете найти в нашем Телеграм канале: Информатика ЕГЭ | itpy 👨‍💻
Подписывайтесь на наш канал по теории Python: Азим вкатывается в IT | itpy 💻  Вы найдете тут много полезного!