010
Объяснение:
Изобразим все возможные коды длиной не больше 4 в виде дерева (см. рис.)
Красным цветом помечены вершины, которым соответствуют уже занятые коды. Условие Фано запрещает одному коду быть префиксом (началом) другого, желтым цветом отмечены коды, выбор которых будет противоречить условию Фано (например, если занят код 0010, то нельзя выбрать коды 0, 00, 001).
Оставшиеся не закрашенными коды доступны для выбора, они удовлетворяют условию Фано, а значит, код будет допускать однозначное декодирование. По рисунку видно, что наименьшая длина кода равна 3, есть два варианта: 100 и 010. В ответ пойдёт более правый код, у него числовое значение меньше.
010
Объяснение:
Изобразим все возможные коды длиной не больше 4 в виде дерева (см. рис.)
Красным цветом помечены вершины, которым соответствуют уже занятые коды. Условие Фано запрещает одному коду быть префиксом (началом) другого, желтым цветом отмечены коды, выбор которых будет противоречить условию Фано (например, если занят код 0010, то нельзя выбрать коды 0, 00, 001).
Оставшиеся не закрашенными коды доступны для выбора, они удовлетворяют условию Фано, а значит, код будет допускать однозначное декодирование. По рисунку видно, что наименьшая длина кода равна 3, есть два варианта: 100 и 010. В ответ пойдёт более правый код, у него числовое значение меньше.
Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger;
var (s,d,e):=(n div 100, (n div 10) mod 10, n mod 10);
Writeln('Cотни ',s,', десятки ',d,', единицы ',e);
Writeln('Сумма цифр ',s+d+e,', их произведение ',s*d*e);
Writeln('Справа налево: ',100*e+10*d+s);
Writeln('Перестановка сотен в конец: ',100*d+10*e+s)
end.
Пример
328
Cотни 3, десятки 2, единицы 8
Сумма цифр 13, их произведение 48
Справа налево: 823
Перестановка сотен в конец: 283