Задание 13. Информатика. ЕГЭ. Демо-2025

Просмотры: 2944
Изменено: 24 ноября 2024

(Демо-2025) В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети.

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

В ответе укажите только число.

Решение:

В двоичном виде маска сети записывается так: \(11111111.11111111.11111000.00000000_2\). Видно, что для узла в сети отводится \(11\) младших разрядов. Значит, номер узла в этой сети может принимать значения от \(0\) до \(2^{11} - 1 = 2047\).

C++


#include<iostream>

using namespace std;

int digs(unsigned n) {
    int q = 0;
    for (; n; n >>= 1)
        q += n & 1;
    return q;
}

int32_t main() {
    unsigned net = (172 << 24) + (16 << 16) + (168 << 8);

    int q = 0;

    for(int i = 0; i < 2048; i++)
        q += int(digs(net + i) % 5 != 0);

    cout << q << '\n';
}

Ответ: \(1663\)