Можно цикл запустить наооборот:
for i:=n downto 1 do
Writeln(x[i]);
Ответ написан в файле.
Через логическую связку and и or не получится проверял. Только построчно.
Так. Ну для начала небольшая табличка простейших чисел (3-9);
<u>00=0;</u>
<u>01=1;</u>
<u>02=2;</u>
<u>10=3;</u>
<u>11=4;</u>
<u>12=5;</u>
<u>20=6;</u>
<u>21=7;</u>
<u>22=8;</u>
И так, ситуация у нас почти такая же, как и из двоичной в восмеричную, только мы берем не 3 цифры, а 2. Вот например: 102211<u>02 </u>= (смотрим по таблице(2));
1022<u>11</u> = (смотрим по таблице(4));
10<u>22 </u>= (смотрим по таблице(8));
<u>10</u> = (смотрим по таблице(3));
Итоговое число(снизу вверх)=10221102(3)=3842(9);