Поделитесь своими знаниями, ответьте на вопрос:
Для кодирования некоторой последовательности, состоящей из букв A, B, C, D и E, используется неравномерный двоичный код, позволяющий однозначно декодировать полученную двоичную последовательность. Вот этот код: A-101, B-11, C-010, D-00, E-011. Можно ли сократить для одной из букв длину кодового слова так, чтобы код по- прежнему можно было декодировать однозначно? Коды остальных букв меняться не должны.
begin
var k:=0;
var n:=ReadInteger();
var nmax:=0;
while n<>0 do begin
Inc(k);
if n mod 10 = 0 then
if n>nmax then nmax:=n;
n:=ReadInteger()
end;
var cntrl:=ReadInteger();
Writeln('Получено ',k,' чисел');
Writeln('Полученное контрольное значение: ',cntrl);
Writeln('Вычисленное контрольное значение: ',nmax);
if cntrl=nmax then Writeln('Контроль пройден')
else Writeln('Контроль не пройден')
end.
Тестовое решение:
53
16
40
9
10
32
74
0
40
Получено 7 чисел
Полученное контрольное значение: 40
Вычисленное контрольное значение: 40
Контроль пройден