Короче, я с теорией не работаю, поэтому объясню алгоритм более практичней. Итак, нам нужно проверить каждый элемент массива и выяснить, является ли он трехзначным числом. Какой-то переменной мы присваем значение 1000. И как только мы находим трехзначное число, мы проверяем ниже ли это число той переменной(в первый раз, соответственно да). если ответ положительный, то присваем переменной значение числа, сс которым мы работали и которое, естественно меньше. Теперь проверяем дальше трехзначные числа. Если они ниже переменной, то присваевам их к этой же переменной. В конце цикла, переменная будет иметь значение минимального 3х знач элемента. Если переменная по прежнему равна 1000. Значит 3х знач числа не нашлось и мы выводим надпись "таких чисел нет".
Const n=3;{можно любое число}
var a:array [1..n] of Integer;x,q,i:Integer;b,c,z:Real;
begin
for i:=1 to n do
begin
Write('a[',i,']=');
ReadLn(a[i]);
end;
x:=a[1];
for i:=2 to n do
if x<a[i]
then x:=a[i];
c:=x;
Writeln(c:3:2,'-Naibolshoe');
q:=a[1];
for i:=2 to n do
if q>a[i]
then q:=a[i];
z:=q;
Writeln(z:3:2,'-Naimenshoe');
b:=(x+q)/2;
WriteLn(b:3:2,'-seredne arifmitichne') ;
readln;
end.
#код на руби
for i in 0.."1FF".to_i(16)
p [i, i.to_s(16), i.to_s(8)] if i%16==0 and (i/16/16)==1 and i/8==5*8+6
end
Вывод
[368, "170", "560"]
(12*2^13)/(256*128)=(3*2^15)/2^15=3 бита
Ответ: 9 цветов