Var n,a,res:integer; i:integer; begin n:=1; write('Введите N:'); readln(n); write('Введите a:'); readln(a); res:=a; for i:=1 to n do begin res := res*(a-i); end; writeln('ответ:',res)end.
// PascalABC.Net 3.0, сборка 1066 var s,s1:string; i:integer; a:char; begin Write('Введите натуральное число любой длины :'); Readln(s); Write('Введите цифру, которую надо удалить: '); Readln(a); s1:=''; for i:=1 to Length(s) do if s[i]<>a then s1:=s1+s[i]; Writeln('Результат: ',s1) end.
Тестовый прогон: Введите натуральное число любой длины :3141592653589793 Введите цифру, которую надо удалить: 5 Результат: 3141926389793
2. Современное решение (так в школе почему-то не учат)
// PascalABC.Net 3.0, сборка 1066 begin var s:=ReadString('Введите натуральное число любой длины :'); var a:=ReadChar('Введите цифру, которую надо удалить: '); Write('Результат: ',s.Replace(a,'')); end.
Из условия Фано следует, что в префиксном неравномерном двоичном коде, предусматривающем однозначное декодирование, ни одно кодовое слово не может быть началом другого.
Таким образом, оставшиеся три кода не могут быть началом кода буквы Б, и началами кодов друг друга.
То есть коды 0 и 00 отпадают сразу, т.к. это начала буквы Б.
Если предположить, что один из кодов равен 1, и что нам нужны кратчайшие коды, значит оставшиеся коды могут быть только 01 и 011.
Если предположить, что коды двузначны, тогда кодами могут быть 01, 10 и 11.
В первом случае суммарная длина кодов равна 1+2+3+3 = 9, во втором случае - 2+2+2+3 = 9.
Оба варианта подходят, кратчайшая суммарная длина - 9
i:integer;
begin
n:=1;
write('Введите N:'); readln(n);
write('Введите a:'); readln(a);
res:=a;
for i:=1 to n do
begin
res := res*(a-i);
end;
writeln('ответ:',res)end.
Пример:
Введите N:2
Введите a:4
ответ:24