В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
Kseiaa
Kseiaa
12.03.2022 10:11 •  Информатика

Похожие числа
ограничение времени 1 секунда
ограничение памяти 64mb
ввод стандартный ввод или input.txt
вывод стандартный вывод или output.txt
назовем два числа похожими, если они состоят из одних и тех же цифр.

например, числа 1132 и 32321 похожие, а 12 и 123 – нет (в первом числе нет цифры 3). требуется написать программу, которая определит, являются ли два данных натуральных числа похожими.

формат ввода
в первой строке входных данных записано натуральное число k – количество запросов (1 ≤ k ≤ 10). в следующих k строках содержится по два целых числа а и в , разделенных пробелом (1 ≤ а, в ≤ 109).

формат вывода
выходной файл должен содержать k строк. для каждого теста в отдельной строке надо выдать сообщение “yes”, если а и в являются похожими, или “no”, если таковыми не являются.

пример 1
ввод вывод
1
1132 32321
yes
пример 2
ввод вывод
2
12 123
11 111
no
yes

Показать ответ
Ответ:
sharinaEl
sharinaEl
10.12.2022 21:17

5

Объяснение:

Маска в двоичном представлении - это 32 бита, первые несколько бит равны 1, остальные 0. Адрес сети из адреса узла получается побитовым И, то есть IP адрес переводится в двоичную форму, и вычисляется побитовое И с соответствующим битом маски.

Переводим IP узла и адрес сети в двоичную форму (можно сообразить, что достаточно перевести только второй справа байт)

159.152.66.19 = ... . ... . 01000010 . ...

159.152.64.0 = ... . ... . 01000000 . ...

Побитовое И работает так: 1 И 1 = 1, все остальные комбинации 0.

01 в начале должно сохраниться, поэтому второй страва байт маски  начинается на 11.

10 в конце должно превратиться в 00, поэтому второй справа байт маски оканчивается на 00.

На оставшихся местах 0 превратился в 0, так что в маске может быть как 0, так и 1.

Вот все возможные варианты маски:

(16 единиц) 11000000 (8 нулей)

(16 единиц) 11100000 (8 нулей)

(16 единиц) 11110000 (8 нулей)

(16 единиц) 11111000 (8 нулей)

(16 единиц) 11111100 (8 нулей)

0,0(0 оценок)
Ответ:
sna2003
sna2003
02.06.2023 14:07

#include <iostream>

#include <vector>

using namespace std;

int main()

{

   float summa, count = 0;

   vector<int> result, zero;

   for (int i = 21; i < 200; i++)

   {

       if (i % 3 == 0)

       {

           result.push_back(i);

           count++;

           summa += i;

           if (i % 10 == 0)

           {

               zero.push_back(i);

           }

       }

   }

   cout << R"(Числа которые заканчиваютса нулем )" << endl;

   for (int i = 0; i < zero.size(); i++)

   {

       cout << zero[i] << ' ';

   }

   cout << endl;

   cout << R"(Числа которые кратные 3)" << endl;

   for (int i = 0; i < result.size(); i++)

   {

       cout << result[i] << ' ';

   }

   cout << endl;

   cout << R"(Количество таких чисел = )" << count << endl;

Дальше немного сами подумайте если я это написал и вы это не поняли. Советую учить С++. Потому что вы не будете понимать что вы делаете.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота