Ниже представлен записанный на разных языках программирования фрагмент одной и той же программы. В программе описан одномерный целочисленный массив A, в представленном фрагменте программы обрабатываются элементы массива с индексами от 1 до 25.
| Бейсик | Паскаль |
|---|---|
n = 25 A(1) = 2 FOR i = 2 TO n A(i) = 2*A(i–1) MOD 10 NEXT i | n:=25; A[1]:=2; for i:= 2 to n do begin A[i] := 2*A[i–1] mod 10; end;
|
| Си++ | Алгоритмический язык |
n=25; A[1] = 2; for (i = 2; i <= n; i++) { A[i] = 2*A[i–1] % 10; }
| n:=25 A[1] := 2 нц для i от 2 до n A[i] = mod (2*A[i–1], 10) кц |
| Python | |
n = 25 A[1] = 2 for i in range(2, n+1): A[i] = 2*A[i–1] % 10 | |
Чему будет равно значение элемента A[25] (то есть элемента массива с индексом 25) после выполнения фрагмента программы?
В цикле каждый последующий элемент массива равен остатку от деления на 10 предыдущего элемента массива, умноженного на 2.
Проделаем цикл, представленный в программе:
A[2] = 4;
A[3] = 8;
A[4] = 6;
A[5] = 2;
A[6] = 4;
...
Видно, что элементы массива повторяются с периодом 4, то есть при заполнении элементов массива повторяется последовательность 4; 8; 6; 2. Элемент A[25] соответствует элементу A[5] и равен 2.

