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

Расшифровать Кодировки вида BaseN используются давно.

Они были придуманы для перевода произвольной двоичной последовательности (последовательности байт) в текстовый формат для передачи этого текста по сети (например, для протокола электронной почты).

(N) в названии означает длину алфавита, в который кодируется текст. Алфавит всегда выбирается так, чтобы в нем содержались только печатаемые символы.

Вот, например, алгоритм Base32:

Возьмем алфавит как 234567. Всего 32 символа.

Поделим нашу битовую последовательность на блоки по 40 бит (5 байт). Если длина последовательности не кратна 40, то дополняем последний блок нулями и, в зависимости от количества недостающих целых байт, выполняем в самом конце такой алгоритм:

Если не хватило 1 байта, то в итоговом тексте заменим один последний символ на =

Если не хватило 2 байт, то в итоговом тексте заменим три последних символа на =

Если не хватило 3 байт, то в итоговом тексте заменим четыре последних символа на =

Если не хватило 4 байт, то в итоговом тексте заменим шесть последних символов на =

В каждом блоке выделяем по 5 бит и переводим их в десятичную систему счисления (получится число от 0 до 31). Это число будет позицией символа алфавита, который нужно добавить к итоговой строке. Не забываем, что тру программисты считают с нуля.

После выполнения пункта 3 получаем итоговую строку - это и есть наша входная последовательность, закодированная алгоритмом BASE32.

Любой текст можно преобразовать в битовую последовательность (например, при таблицы ASCII) и применить к нему алгоритм Base32. Например, строка 'A' кодируется в 'IE', а 'ABC' в 'IFBEG==='.

Задание

Мы закодировали флаг при алгоритма BASE32, но наш алфавит состоит из нашего русского алфавита, за исключением буквы Ё - . Получилось 'ОНФЗАШЫФМЩЭЦДРЛУЖМЩУДЯИ='. Ты знаешь что нужно делать - достать флаг.

Показать ответ
Ответ:
Slysly
Slysly
29.07.2022 09:30
// #1

#include <iostream>
using namespace std;

int main() {
unsigned int n;
cout << "N = ";
cin >> n;
float a[n][n],
sum = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << "a[" << i
<< "][" << j
<< "] = ";
cin >> a[i][j];
sum += a[i][j];
}
}
float avg = sum / (n * n);
cout << "Среднее арифметическое - "
<< avg << ", начинаю замену...\n";
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (a[i][j] < 0) {
cout << "a[" << i
<< "][" << j
<< "] = " << a[i][j]
<< " < 0, заменяю на "
<< avg << "...\n";
a[i][j] = avg;
}
}
}
cout << "\nИзменённый массив:\n";
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << a[i][j];
if ( !(j == n - 1) ) cout << ' ';
}
if ( !(i == n - 1) ) cout << '\n';
}
return 0;
}

// #2

#include <iostream>
using namespace std;
const unsigned short int n = 7;

int main() {
int a[n][n],
max;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << "a[" << i
<< "][" << j
<< "] = ";
cin >> a[i][j];
}
}
max = a[0][0];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if ( (a[i][j] > max) && (i + j > n + 1) )
max = a[i][j];
}
}
cout << "Максимум ниже побочной диагонали: "
<< max;
return 0;
}
0,0(0 оценок)
Ответ:
Мастер008
Мастер008
14.05.2021 12:06
1)
#include <iostream>
#include <math.h>

using namespace std;

int main() {
 int a;
 cin >> a;
 int d = a%10;
 string s = "yes";
 while(abs(a) > 0) {
   if(a%10 != d) {
     s = "no";
     break;
   }
   a/=10;
  }
  cout << s << endl;
}
2)
#include <iostream>
#include <math.h>

using namespace std;

int main() {
 int a;
 cin >> a;
 int d = a%10;
 a/=10;
 string s = "no";
 while(abs(a) > 0) {
  if(a%10 == d) {
    s = "yes";
    break;
  }
  d = a%10;
  a/=10;
  }
  cout << s << endl;
}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота