Представленный ниже на пяти языках программирования фрагмент программы обрабатывает элементы одномерного целочисленного массива A с индексами от 0 до 9. Перед началом выполнения данного фрагмента эти элементы массива имели значения 3, 5, 8, 2, 1, 4, 3, 1, 2, 3 (т. е. A[0] = 3, A[1] = 5, …, A[9] = 3).
s = 0FOR i = 0TO8IF A(i) < A(i+1) THEN
A(i+1) = A(i+1) - A(i)
ELSE
A(i) = A(i) - A(i+1)
ENDIF
s = s + A(i)
NEXT i
Определите значение переменной после выполнения фрагмента.
Показать разбор и ответ
В цикле сравниваются все пары соседних элементов: нулевой с первым, первый со вторым и т. д., всего 9 пар. На каждом проходе цикла сравнивается одна пара, и её больший элемент заменяется разностью этих элементов. В случае равенства заменяется левый элемент пары. Переменная при этом увеличивается на значение левого элемента после преобразований. Выполним последовательно все действия в цикле.
i
Массив
s
3 5 8 2 1 4 3 1 2 3
0
0
3 2 8 2 1 4 3 1 2 3
0 + 3 = 3
1
3 2 6 2 1 4 3 1 2 3
3 + 2 = 5
2
3 2 4 2 1 4 3 1 2 3
5 + 4 = 9
3
3 2 4 1 1 4 3 1 2 3
9 + 1 = 10
4
3 2 4 1 1 3 3 1 2 3
10 + 1 = 11
5
3 2 4 1 1 0 3 1 2 3
11+ 0 = 11
6
3 2 4 1 1 0 2 1 2 3
11 + 2 = 13
7
3 2 4 1 1 0 2 1 1 3
13 + 1 = 14
8
3 2 4 1 1 0 2 1 1 2
14 + 1 = 15
Ответ: 15
Это задание составили эксперты «СтатГрада» для Яндекса
Это задание решали 3 тыс. раз. С ним справились 62% пользователей.