Такие задачи решаются с помошью таблицы и внимательно изучая факты она заполняется. Потом используется метод исключения.
Всю задачу расписывать очень долго. Я приведу только один пример:
Коршунов - самый молодой, а химик старше историка, следовательно Коршунов не химик (он не может быть старше кого бы то ни было, потому что самый младший).
Const
nn=100;
var
a:array[1..nn] of integer;
i,n,s1,s2:integer;
begin
Write('Введите размер массива n: '); Read(n);
Randomize;
Writeln('Исходный массив');
for i:=1 to n do begin
a[i]:=Random(3000)+1000;
Write(a[i]:5)
end;
Writeln;
Writeln('Результаты');
for i:=1 to n do begin
s1:=(a[i] div 1000)+(a[i] div 100) mod 10;
s2:=(a[i] div 10) mod 10+a[i] mod 10;
if s1=s2 then Write(a[i]:5)
end
end.
Тестовое решение:
Введите размер массива n: 50
Исходный массив
3407 3373 2752 3121 2683 3082 3252 1364 3890 1595 3004 3206 3663 2523 1972 2003 2344 3901 3739 2898 1639 2839 2498 1200 1613 1498 1262 3370 1548 1287 1972 3348 1278 3116 1505 3235 1062 1740 2491 1023 3955 3704 1265 2567 1287 1255 2602 3924 2561 2912
Результаты
3407 3663 2561
Вычисляем количество всех точек 786432. 16 байт нужно для 256 цветов
Вычисляем объём в байтах 12582912 байт = 12288 Кб
N=16
I=4 , так как 16 - это 2 в 4 степени
1 точка = 1 пиксель = n (маленькая n, очень важно)
V= n*I, подставляем, получается V=1*4=4 бита
Var
a: integer;
begin
readln(a);
if (a mod 10 = a div 100) or (a mod 10 = a div 10 mod 10) or (a div 10 mod 10 = a div 100) then
writeln('Есть')
else
writeln('Нет');
<span>end.</span>