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

Для кодирования некоторой последовательности, состоящей из букв а, б, в, г, д, е, ж, з, и, й. решили

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

з, и использовали соответственно кодовые слова 1100, 0010, 1010, , 0111, 1101, 0101, 100, 1

укажите кратчайшее возможное кодовое слово для буквы й, при котором код будет допускать

однозначное декодирование. если таких кодов несколько, укажите код с наименьшим числовым

значением.

и если можно, то с объяснениями и схемой решения

Показать ответ
Ответ:
NicholasM
NicholasM
13.07.2021 14:42

#include <iostream>

#include <algorithm>

using namespace std;

int main()

{

int n(0),m(0);

cin >> n >> m;

int matrix[n][m];

char arr[n][m];

arr[0][0] = '0';

for(int i = 0;i<n;++i){

for(int j = 0;j<m;++j){

cin >> matrix[i][j];

if(!i && !j)continue;

if(!i){

matrix[i][j] += matrix[i][j-1];

arr[i][j] = 'R';

}

if(!j){

matrix[i][j] += matrix[i-1][j];

arr[i][j] = 'D';

}

if(i && j){

matrix[i][j] += max(matrix[i-1][j],matrix[i][j-1]);

if(max(matrix[i-1][j],matrix[i][j-1]) == matrix[i-1][j])arr[i][j] = 'D';

else arr[i][j] = 'R';

}

}

}

cout << matrix[n-1][m-1];

cout << "\n";

string s;

for(int i = n-1;;){

for(int j = m-1;;){

if(arr[i][j] == '0'){

reverse(s.begin(),s.end());

s.erase(0,1);

cout << s << endl;

return 0;

}

s.push_back(arr[i][j]);

s.push_back(' ');

if(arr[i][j] == 'R'){

j -= 1;

continue;

}

if(arr[i][j] == 'D'){

i -= 1;

continue;

}

}

}

cout << endl;

return 0;

}

Объяснение:

0,0(0 оценок)
Ответ:
2Сергей5751
2Сергей5751
09.04.2023 17:45

var

kurs, summa, rub: double;

begin

readln(kurs, summa);

rub := kurs * summa;

writeln(trunc(rub), ' РУБ ', (frac(rub) * 100):2:0, ' КОП');

end.

Объяснение:

Получаем два числа, затем перемножаем курс на сумму в долларах, чтобы получить рубли и затем выводим в нужном формате.  

trunc(a) получает целую часть от числа  

frac(a) получает дробную часть от числа, затем умножаем на 100 для преобразования дробной части в целую(для вывода на экран) (например число 0.22 преобразуется в 22.0) и с :2:0 выводим в формате 2 цифры до запятой и 0 после.

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