Нужно написать программу на delphi: вводится кол-во переменных с клавиатуры на выходе 2 числа: сумма чисел, произведение квадратов. то есть "введите кол-во переменных" 2 3 3 сумма = 6 произведение квадратов = 81
Из условия Фано следует, что в префиксном неравномерном двоичном коде, предусматривающем однозначное декодирование, ни одно кодовое слово не может быть началом другого.
Таким образом, оставшиеся три кода не могут быть началом кода буквы Б, и началами кодов друг друга.
То есть коды 0 и 00 отпадают сразу, т.к. это начала буквы Б.
Если предположить, что один из кодов равен 1, и что нам нужны кратчайшие коды, значит оставшиеся коды могут быть только 01 и 011.
Если предположить, что коды двузначны, тогда кодами могут быть 01, 10 и 11.
В первом случае суммарная длина кодов равна 1+2+3+3 = 9, во втором случае - 2+2+2+3 = 9.
Оба варианта подходят, кратчайшая суммарная длина - 9
program Pr1;
{$APPTYPE CONSOLE}
var
N, a, i, s: integer;
p: double;
begin
WriteLn('Введите кол-во переменных ');
ReadLn(N);
s:=0;
p:=1;
for i:=1 to N do begin
ReadLn(a);
s:=s+a;
p:=p*a*a;
end;
WriteLn( 'Сумма = ',s);
WriteLn('Произведение квадратов = ',p);
ReadLn;
end.
Пример:
Введите кол-во переменных
5
4
6
2
7
3
Сумма = 22
Произведение квадратов = 1016064