Как в ЕГЭ · 3 из 20
№10. Адреса в сети
По мотивам задания №10 (в 2027 году маска подсети переехала сюда из №13). Известны адрес одного узла и маска сети. Сколько в этой сети адресов, у которых в двоичной записи число единиц делится на заданное число? Адресов в сети бывают тысячи, и на бумаге их не перебрать; программа перебирает за мгновение.
Что сделать
Посчитайте адреса сети, в которой лежит этот узел, у которых число единиц в 32-битной записи делится на k.
Что приходит
ip— адрес узла строкой, например"192.168.32.160"maska— маска сети строкой, например"255.255.255.240"k— на что должно делиться число единиц
Что вернуть
Число подходящих адресов — целое число.
Допишите функцию adresa в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
Узел 192.168.32.160 с маской 255.255.255.240: сеть — 16 адресов, от 192.168.32.160 до 192.168.32.175. У первого единиц 3 + 2 + 1 + 2 = 8 — делится на 2. Считаем так все 16.
adresa("192.168.32.160", "255.255.255.240", 2)
8
Сеть — все адреса, у которых биты под единицами маски такие же, как у узла. Считаются все адреса сети, включая сам адрес сети (все биты узла — нули) и широковещательный (все — единицы). Единицы считаются по всей 32-битной записи адреса.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.