Var a,i,n,sum:integer; Begin write('Введите 4-х значное число: '); readln(n); i:=n mod 100; i:=i div 10; a:=n div 100; a:=a mod 10; sum:=a+i; i:=sum div 2; writeln('Среднее арифметическое средних чисел числа',n,'=',i); End.
Из условия Фано следует, что в префиксном неравномерном двоичном коде, предусматривающем однозначное декодирование, ни одно кодовое слово не может быть началом другого.
Таким образом, оставшиеся три кода не могут быть началом кода буквы Б, и началами кодов друг друга.
То есть коды 0 и 00 отпадают сразу, т.к. это начала буквы Б.
Если предположить, что один из кодов равен 1, и что нам нужны кратчайшие коды, значит оставшиеся коды могут быть только 01 и 011.
Если предположить, что коды двузначны, тогда кодами могут быть 01, 10 и 11.
В первом случае суммарная длина кодов равна 1+2+3+3 = 9, во втором случае - 2+2+2+3 = 9.
Оба варианта подходят, кратчайшая суммарная длина - 9
Begin
write('Введите 4-х значное число: '); readln(n);
i:=n mod 100; i:=i div 10;
a:=n div 100; a:=a mod 10;
sum:=a+i;
i:=sum div 2;
writeln('Среднее арифметическое средних чисел числа',n,'=',i);
End.