Если считать что у племени мульти в алфавите не 17, а 16 символов, то задача решается так: На 1 символ у племени мульти требуется log₂16 = 4 бита На сообщение из 100 символов - 100*4 = 400 бит Для племени пульти получится соответственно log₂32=5 бит, на все сообщение 50*5=250 бит Сравниваем: 400 бит > 250 бит Если в задаче 17, а не 16, то значение логарифма получится не целым (4.08746284125), можно это значение дальше и подставлять. Если считать, что каждый символ кодируется целым числом бит, то на 1 символ у племени мульти потребуется также 5 бит (округление выполняют всегда в большую сторону). Остальные расчеты делаются аналогично
procedure VoTeRaz(f:text;n:integer;s:string); begin writeln('Было:'); assign(f,'Input.txt'); reset(f); while not(Eof(f)) do begin read(f,n); write(n,' '); if n>7 then n:=n*(n div 7); s:=s+inttostr(n)+' '; end; delete(s,length(s),1); close(f); assign(f,'Input.txt'); rewrite(f); write(f,s); close(f); writeln; writeln('Стало:'); write(s); writeln; end;
function VoTeDva(f:text;n:integer;s:string):integer; begin writeln('Было:'); assign(f,'Input.txt'); reset(f); while not(Eof(f)) do begin read(f,n); write(n,' '); if n>7 then n:=n*(n div 7); s:=s+inttostr(n)+' '; end; delete(s,length(s),1); close(f); assign(f,'Input.txt'); rewrite(f); write(f,s); close(f); writeln; writeln('Стало:'); write(s); writeln; VoTeDva:=0; end;