В программе используется фрагмент одномерного целочисленного массива A с индексами от 1 до 10. Значения элементов равны 3, 14, 15, 92, 6, 2, 7, 18, 28, 17 соответственно, т. е. A[1] = 3, A[2] = 14 и т. д.
Определите значение переменной s после выполнения следующего фрагмента этой программы (записанного ниже на пяти языках программирования).
| Бейсик | Python |
|---|---|
s = 0 n = 10 FOR i = 3 TO n s = s+A(i)-A(i-2) NEXT i
| s = 0 n = 10 for i in range(3,n+1): s = s + A[i] – A[i-2]
|
| Паскаль | Алгоритмический язык |
s := 0; n := 10; for i:=3 to n do begin s := s + A[i] - A[i-2]; end;
| s := 0 n := 10 нц для i от 3 до n s := s + A[i] - A[i-2] кц |
| Си++ | |
s = 0; n = 10; for (i = 3; i <= n; i++) { s = s + A[i] - A[i-2]; }
| |
Можно заметить, что данный алгоритм, начиная с третьей суммы, отнимет то число, которое прибавлял 2 шага назад. Поэтому, на самом деле, будет разность первых 2 (они пойдут со знаком минус) и последних 2 (они пойдут со знаком плюс) чисел, а все остальное сократится в 0:
Ответ: 28.

