program raf105;
var
A: real;
x: integer;
begin
write('Введите число в битах: ');
readln(A);
writeln('1. Байт');
writeln('2. Килобайт');
writeln('3. Магабайт');
writeln('4. Гигабайт');
write('Введите номер единицы, в которую нужно перевести: ');
readln(x);
if x=1 then writeln(A/8,' байт')
else if x=2 then writeln(A/8000,' кб.')
else if x=3 then writeln(A/8000000,' мб.')
else if x=4 then writeln(A/8000000000,' гб.')
else writeln('Ошибка');
end.
PascalABC 3.4.26
Объяснение:
Условие Фано означает, что ни одно кодовое слово не является началом другого кодового слова.
Мы можем начать наш код либо с нуля, либо с единицы, значит, чертим два дерева. Если мы закодируем букву нулём или единицей, для других букв не будет выполняться условие Фано, поэтому нужно добавить ноль или единицу (на каждом дереве появилось две ветки). 10 мы не можем использовать, так как с него начинается кодовое слово буквы А. Кратчайшие кодовые слова - 00, 01, 11. Сумма длин равна 2 * 3 = 6