Ниже представлен фрагмент программы, обрабатывающей одномерный целочисленный массив с индексами от 0 до 10. При этом в начале выполнения этого фрагмента в массиве находилась возрастающая последовательность чисел, то есть . Какое наибольшее значение может иметь переменная s после выполнения данной программы? s := 27; n := 10; for i:=0 to n-1 do begin s:= s + A[i] - A[i+1] + 2 end;
В цикле переменная s увеличивается на A[i] - A[i+1] + 2
Прибавка на 2 даст суммарную прибавку 20, а вот прибавка элементов получится такая, все элементы кроме первого и последнего сложатся сначала со знаком "-", потом "+", и они будут равны 0, останется только A[0] - A[n]
Поскольку массив - возрастает, то эта прибавка - отрицательная, нам нужно сделать её как можно больше.
Для этого нужно, чтобы элементы массива отличались на 1,
37
Объяснение:
В массиве n + 1 элемент (n = 10),
цикл выполняется n раз
В цикле переменная s увеличивается на A[i] - A[i+1] + 2
Прибавка на 2 даст суммарную прибавку 20, а вот прибавка элементов получится такая, все элементы кроме первого и последнего сложатся сначала со знаком "-", потом "+", и они будут равны 0, останется только A[0] - A[n]
Поскольку массив - возрастает, то эта прибавка - отрицательная, нам нужно сделать её как можно больше.
Для этого нужно, чтобы элементы массива отличались на 1,
например, 0, 1, 2, 3, ..., n
Тогда A[0] - A[n] = -n, т.е. -10
27 + 20 - 10 = 37