const n=10;
var a:array [1..n] of integer;
i:integer;
begin
write(' Исходный массив: ');
for i:=1 to n do
begin
a[i]:=random(90)+10;
write(a[i]:3,' ')
end;
writeln;
for i:=1 to n-1 do a[n-i+1]:=a[n-i];
a[1]:=0;
write('Сдвинутый массив: ');
for i:=1 to n do write(a[i]:3,' ')
end.
Для того, чтобы решить данную задачу, необходимо воспользоваться формулой N = 2^i, где N - максимальное количество цветов в палитре, а i - глубина цвета.
2^8 < 312 < 2^9
Если мы будем использовать глубину цвета равную 8 битам, то максимальное допустимое количество цветов в палитре будет равняться 256 (так как 2^8 = 256), что не удовлетворяет условиям задачи.
Значит, нам необходимо использовать глубину цвета равную 9 битам, так как при этом значении максимальное допустимое количество цветов в палитре будет равняться 512(так как 2^9 = 512), а значит для кодирования 312 цветов памяти хватит с избытком.
ответ: 9
const n=10;
var a: array[1..n] of integer;
i: integer;
begin
for i:=1 to n do
begin
a[i]:=random(21)-10;
write(a[i],' ');
end;
writeln;
for i:=n downto 2 do a[i]:=a[i-1];
a[1]:=0;
for i:=1 to n do write(a[i],' ');
writeln;
end.
Пример:
-9 -8 -8 -6 -4 -4 5 2 7 -6
0 -9 -8 -8 -6 -4 -4 5 2 7