На этом этапе стоит определиться с, так называемой, длиной информационного слова, то есть длиной строки из нулей и единиц, которые мы будем кодировать. Допустим, у нас длина слова будет равна 16. Таким образом, нам необходимо разделить наше исходное сообщение («habr») на блоки по 16 бит, которые мы будем потом кодировать отдельно друг от друга. Так как один символ занимает в памяти 8 бит, то в одно кодируемое слово помещается ровно два ASCII символа. Итак, мы получили две бинарные строки по 16 бит:
Объяснение:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
setlocale(LC_ALL, "RU");
int N;
cin >> N;//массив на N элементов
vector<int>a;
for (int i = 0; i < N; i++)
a.push_back(rand()%100);// заполнение массива числами от 0 до 100
for (int i = 0; i < N; i++)
cout << a[i] << " ";
cout << endl;
bool flag=false;
int number;
for (int i = 0; i < N; i++) {
auto r = find(a.begin(), a.end(),a[i]);// функция стандартной библиотеки для поиска
if (r != a.end()&&r-a.begin()!=i)
{
number = r - a.begin();// номер элемента массива с одинаковым значением
flag = true;
break;
}
}
if (flag)
cout <<"В массиве присутствуют элементы с одинаковыми значениями. Одним из равных значений является: "<<a[number];
else
cout << "В массиве не присутствуют элементы с одинаковыми значениями";
}