Ниже представлен записанный на разных языках программирования фрагмент одной и той же программы. В программе описан одномерный целочисленный массив A, в представленном фрагменте программы обрабатываются элементы массива с индексами от 1 до 10.
| Бейсик | Python |
|---|---|
s = 0 n = 10 FOR i = 2 TO n s=s+A(i)*A(i)-A(i-1)*A(i-1) NEXT i
| s=0 n=10 for i in range(2,n+1): s=s + A[i]*A[i]-A[i-1]*A[i-1]
|
| Паскаль | Алгоритмический язык |
s:=0; n:=10; for i:= 2 to n do begin s:=s+A[i]*A[i]-A[i-1]*A[i-1]; end;
| s:=0 n:=10 нц для i от 2 до n s:=s + A[i]*A[i]-A[i-1]*A[i-1]; кц |
| Си++ | |
s = 0; n = 10; for (i = 2; i <= n; i++) { s=s + A[i]*A[i]-A[i-1]*A[i-1]; }
| |
В начале выполнения этого фрагмента в массиве находились числа 1, 12, 23, 34, 45, 56, 67, 78, 89, 90, т. е. A[1]=1, A[2]=12 и т. д. Чему будет равно значение переменной s после выполнения данного фрагмента?
Можно заметить, что общий вид формулы будет такой:
A[2]*A[2] - A[1]*A[1] + A[3]*A[3] - A[2]*A[2] + A[4]*A[4] - A[3]*A[3] и т. д.
Видно, что сократятся все слагаемые, кроме A[10]*A[10] и - A[1]*A[1]. Это и будет ответ 90*90 - 1*1 = 8099.
Ответ: 8099.

