var
N, _counterZ, _counterU : integer;
begin
_counterU := 0;
_counterZ := 0;
readln(N);
while N > 0 do
begin
if N mod 10 = 1 then
_counterU := _counterU + 1;
if N mod 10 = 0 then
_counterZ := _counterZ + 1;
N := N div 10;
end;
writeln('Количество единиц в числе: ', _counterU);
writeln('Количество нулей в числе: ', _counterZ);
end.
1) 23+16=39 символов было в сообщении первоначально
2) 23 × 1 байт = 23 байт общий объем первого сообщения без русского алфавита
3) 16 × 2 байта = 32 байт информационный объем сообщения русского алфавита до перекодировки
4) 23+32=55 байт - информационный объем сообщения до перекодировки
5) 39 × 2 байт = 78 байт информационный обем сообщения после перекодировки ( в Unicode 1 символ - 2 байта)
6) 4 Кбит ×1024/8 = 512 байт объем добавленного сообщения
7) 78+512 = 590 байт стал информационный объем сообщения после добавления еще одного сообщения
8) 590 - 55 = 535 байт увеличился итоговый информационный объем
ответ: 535 байт
1038 врод использовать циклы while и repeat не стал поэтому может быть неправильно