Ниже представлен записанный на разных языках программирования фрагмент одной и той же программы, обрабатывающей одномерный целочисленный массив с индексами от 0 до 10.
| Бейсик | Python |
|---|---|
s = 29 n = 10 FOR i = 0 TO n-1 s = s+A(i)-A(i+1)+1 NEXT i
| s = 29 n = 10 for i in range(0,n): s = s + A[i] - A[i+1]+1
|
| Алгоритмический язык | Паскаль |
s := 29 n := 10 нц для i от 0 до n-1 s:=s+A[i]-A[i+1]+1 кц | s := 29; n := 10; for i:=0 to n-1 do begin s:=s+A[i]-A[i+1]+1 end; |
| Си++ | |
s = 29; n = 10; for (i = 0; i <= n-1; i++) s=s+A[i]-A[i+1]+1; | |
Известно, что в начале выполнения этого фрагмента в массиве находилась возрастающая последовательность чисел, то есть A[0] < A[1] < … < A[10].
Какое наибольшее значение может иметь переменная s после выполнения данной программы?
По завершению работы программы S = 29 + A[0] - A[n] + 10. Таким образом, S тем больше, чем меньше разница между A[0] и A[n]. А так как в массиве представлена возрастающая последовательность, то эта разница может быть минимум 10. Итого максимальное значение S = 29 - 10 + 10 = 29.

