Найти тему

Разбор задачи 17867 #kege по информатике #ЕГЭ13 номера

Оглавление

Автор: Демоверсия 2025

Уровень: Базовый

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

Сеть задана IP-адресом 172.16.168.0 и маской сети 255.255.248.0.
Сколько в этой сети IP-адресов, для которых количество единиц в двоичной записи IP-адреса не кратно 5?

Код решения:

Ответ: 1663
Ответ: 1663

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

  1. from ipaddress import *
    Импортируем все функции и классы из модуля ipaddress, который позволяет работать с IP-адресами и сетями.
  2. net = ip_network('172.16.168.0/255.255.248.0', 0)
    Создаем объект сети на основе IP-адреса и маски подсети, заданной в формате CIDR. Здесь '0' указывает на использование маски по умолчанию.
  3. cnt = 0
    Инициализируем счётчик cnt равным 0. Этот счётчик будет использоваться для подсчета количества IP-адресов, удовлетворяющих заданному условию.
  4. for ip in net:
    Начинаем цикл, который перебирает все IP-адреса в заданной сети net.
  5. s = f'{ip:b}'
    Преобразуем текущий IP-адрес ip в двоичную строку и сохраняем её в переменной s.
  6. if s.count('1') % 5 != 0:
    Проверяем, если количество единиц в двоичном представлении IP-адреса не делится на 5 без остатка.
  7. cnt += 1
    Если условие выполняется, увеличиваем счётчик cnt на 1.
  8. print(cnt)
    Выводим значение счётчика cnt, которое теперь содержит количество IP-адресов, не удовлетворяющих условию (количество единиц в двоичном представлении которых не делится на 5).


Информатика ЕГЭ | itpy 🧑‍💻

Поддержать автора донатом 💵