<span>строку
i:=1;
нужно поменять на
i:=n; (раз уж вы начинаете считать с конца)
а строки
</span>while (i>=0) and (a[i]<=0) do i:=i-1;
<span>if i<0 then writeln(0)
</span>на
while (i>0) and (a[i]<=0) do i:=i-1;
<span>if i=0 then writeln(0) (поскольку нет 0-ого элемента массива, и может выдаваться ошибка)</span>
<span>
</span>
32768 = 2^15 = 1000000000000000(2)
Выпишем все числа с нечетным кол-вом 1 и симметричные:
1, 111, 10101, 11111, 1001001, 1101011, 1011101, 1111111,
100010001, 110010011, 101010101, 100111001, 110111011,
101111101, 111111111, 10000100001, 11000100011, 10100100101,
10010101001, 10001110001, 11001110011, 10101110101, 10011111001,
11011111011, 10111111101, 11111111111, 1000001000001,
1100001000011, 1010001000101, 1001001001001, 1000101010001,
1000011100001, 1100011100011, 1010011100101, 1001011101001,
1000111110001, 1100111110011, 1010111110101, 1001111111001,
1101111111011, 1011111111101, 1111111111111, 100000010000001,
110000010000011, 101000010000101, 100100010001001,
100010010010001, 100001010100001, 100000111000001,
110000111000011, 101000111000101, 100100111001001,
100010111010001, 100001111100001, 110001111100011,
101001111100101, 100101111101001, 100011111110001,
110011111110011, 101011111110101, 100111111111001,
110111111111011, 101111111111101, 111111111111111
Всё! Всего 64 числа.
Ну если я ничего не путаю то решается это так берёшь лист тетради в клетку ставишь точку она будет нулевой (тип система отсчёта) теперь выполняем алгоритм из точки (0,0) мы оказались в точке (1,1) при этом мы путь до этой точке не чертили так как это не написано в программе теперь начинается цикл в котором мы уже будем чертить путь передвижения так как у нас это заданно в программе
и если я ничего не напутал получаем такой рисунок
базовая кодировка текста для латиницы