Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Напишите программу, которая подсчитывает количество пар соседних элементов, разница между которыми не кратна 7, а затем заменяет каждый элемент, кратный 7 на число, равное найденному количеству. Гарантируется, что в массиве есть хотя бы один элемент, кратный 7. В качестве результата необходимо вывести сначала первую половину массива по одному элементу в строке, а затем вывести вторую половину массива в обратном порядке по одному элементу в строке. Например, для массива из восьми элементов: 21 2 9 3 2 7 14 4 программа должна получить массив 5 2 9 3 2 5 5 4 вывести (по одному числу в строке) числа: 5 2 9 3 4 5 5 2
=
Объяснение:
const
nmax=100;
type
Tarr=array[1..nmax] of integer;
var
a:Tarr;
i,n:integer;
begin
randomize;
repeat
write('Razmer massiva, ne bolee ',nmax,': ');
readln(n);
until n in [1..nmax];
writeln('Ishodniy massiv:');
for i:=1 to n do
begin
a[i]:=random(50);
write(a[i]:4);
end;
writeln;
i:=1;
while (i<=n) and (a[i] mod 5<>0) do
inc(i);
if i>n then
writeln('Net elementov kratyh 5')
else
begin
a[i]:=0;
writeln('Poluchenniy massiv:');
for i:=1 to n do
write(a[i]:4);
writeln;
end;
end.
На 1 символ у племени мульти требуется log₂16 = 4 бита
На сообщение из 100 символов - 100*4 = 400 бит
Для племени пульти получится соответственно log₂32=5 бит,
на все сообщение 50*5=250 бит
Сравниваем: 400 бит > 250 бит
Если в задаче 17, а не 16, то значение логарифма получится не целым (4.08746284125), можно это значение дальше и подставлять. Если считать, что каждый символ кодируется целым числом бит, то на 1 символ у племени мульти потребуется также 5 бит (округление выполняют всегда в большую сторону). Остальные расчеты делаются аналогично