var a: array[0..9] of integer;
<span> s: string;
</span><span> i,j: integer;
</span><span>begin
</span><span> for i:=0 to 9 do a[i]:=0;
</span><span> write('число: '); readln(s);
</span><span> for i:=1 to length(s) do inc(a[ord(s[i])-48]);
</span><span> i:=9;
</span><span> while a[i]=0 do i:=i-1;
</span><span> j:=i;
</span><span> i:=0;
</span><span> while a[i]=0 do i:=i+1;
</span><span> if (chr(j+48)+chr(i+48)=s[length(s)-1]+s[length(s)]) or
</span><span> (chr(i+48)+chr(j+48)=s[length(s)-1]+s[length(s)])
</span><span> then writeln('Да')
</span><span> else writeln('Нет');
end.
</span>
число: 18245390
<span>Да
</span>число: 1205483Нет
Полностью наполнить флакон(5) , затем перелить из него в флакон(7)(7-5=2-на столько капель останется места). Затем снова наполнить флакон(5) и из него до конца наполнить флакон(7). 5-2=3 капли останется в флаконе(5)
Советую перевести сначала каждое число в 16-тиричную (hex) систему, т.к. проще будет выровнять, потому что каждое будет по 8 бит. Это можно сделать на калькуляторе. Т.е.:
25 = 19h
128 = 80h
12 = 0Сh
44 = 2Ch
Теперь тупо располагаем их друг за другом:
19800С2С h
В десятичной это 427822124,
в двоичной - 11001100000000000110000101100
Считываем сколько чисел получим(или сами решаем чему равно n), делаем цикл на считывание каждого, ищем в них мин и макс.
VAR N, i:integer;
k, min, max:real;
begin
readln(N);
for i:=1 to N do begin
readln(k);
if i=1 then begin min:=k; max:=k end
else if k<min then min:=k
else if k>max then max:=k;
end;
writeln(min-max);
end.