Условие задачи
В программе используется одномерный целочисленный массив A с индексами от 0 до 11. Значения элементов массива A[i] приведены в таблице.
i | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
A[i] | 14 | 13 | 15 | 8 | 4 | 12 | 30 | 21 | 22 | 16 | 5 | 9 |
Определите значение переменной s после выполнения следующего фрагмента этой программы (записанного ниже на пяти языках программирования).
Бейсик | Python |
s = 0 n = 1 FOR i = 0 TO 11 IF A(i) > A(n) THEN s = s + A(i) + i ELSE A(n) = A(i) END IF NEXT i |
s = 0 n = 1 for i in range(0, 12): if A[i] > A[n]: s += A[i] + i else: A[n] = A[i] |
Алгоритмический язык | Паскаль |
s := 0 n := 1 нц для i от 0 до 11 если A[i] > A[n] то s := s + A[i] + i иначе A[n] := A[i] все кц |
s := 0; n := 1; for i := 0 to 11 do if A[i] > A[n] then s := s + A[i] + i else A[n] := A[i]; |
С++ | |
s = 0; n = 1; for (int i = 0; i < 12; i++) { if (A[i] > A[n]) s += A[i] + i; else A[n] = A[i]; } |
Решение
Алгоритм последовательно сравнивает все элементы массива с 1-м, если элемент больше 1-го, алгоритм прибавляет его значение и индекс к S, а иначе заменяет 1-й элемент на следующий.
\(S: 14+0+15+2\)
3-й элемент меньше 1-го, поэтому 1-й становится равным 8, 4-й меньше 1-го, поэтому 1-й становится равным 4.
Все остальные элементы больше 4, поэтому
\(S=14+0+15+2+12+5+30+6+21+7+22+8+16+9+5+10+9+11=202\)
Ответ
202.