Сначала (до i=5) удваиваются элементы массива 1, 2, 3, 4, 5. Получается соответственно 2, 4, 6, 8, 10. Затем, с i=6 удваиваются полученные значения (в обратном порядке). Получается 20, 16, 12, 8, 4.
Можно это всё расписать подробно, по шагам:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
1 шаг цикла:
A [10] := 2*A[1]
1, 2, 3, 4, 5, 6, 7, 8, 9, 2
2 шаг:
A [9] := 2*A[2]
1, 2, 3, 4, 5, 6, 7, 8, 4, 2
3 шаг:
A [8] := 2*A[3]
1, 2, 3, 4, 5, 6, 7, 6, 4, 2
4 шаг:
A [7] := 2*A[4]
1, 2, 3, 4, 5, 6, 8, 6, 4, 2
5 шаг:
A [6] := 2*A[5]
1, 2, 3, 4, 5, 10, 8, 6, 4, 2
6 шаг:
A [5] := 2*A[6]
1, 2, 3, 4, 20, 10, 8, 6, 4, 2
7 шаг:
A [4] := 2*A[7]
1, 2, 3, 16, 20, 10, 8, 6, 4, 2
8 шаг:
A [3] := 2*A[8]
1, 2, 12, 16, 20, 10, 8, 6, 4, 2
9 шаг:
A [2] := 2*A[9]
1, 8, 12, 16, 20, 10, 8, 6, 4, 2
10 шаг:
A [1] := 2*A[10]
4, 8, 12, 16, 20, 10, 8, 6, 4, 2
Ответ: 8
// PascalABC.NET 3.1, сборка 1200 от 13.03.2016
begin
var a:=ArrRandom(45,15,85); a.Println;
Writeln('Индексы нечетных элементов');
a.Select((x,i)->Rec(x,i+1)).Where(x->x.Item1.IsOdd).
Select(x->x.Item2).Println;
end.
<u><em>Тестовое решение:</em></u>
72 49 49 67 56 85 62 36 53 15 25 33 48 63 71 38 43 57 17 78 41 31 56 55 75 71 54 61 46 63 33 53 68 30 28 28 65 25 68 24 51 44 80 54 32
Индексы нечетных элементов
2 3 4 6 9 10 11 12 14 15 17 18 19 21 22 24 25 26 28 30 31 32 37 38 41