Значения элементов фрагмента двумерного массива A[1..100,1..100] задаются с помощью следующего фрагмента программы:
| Бейсик | Паскаль |
|---|---|
FOR i= 1 TO 100 FOR k=1 TO 100 IF i > k THEN A(i,k) = i ELSE A(i,k) = -k NEXT k NEXT i | for i:=1 to 100 do for k:=1 to 100 do if i > k then A[i,k] := i else A[i,k] := -k;
|
| Си++ | Алгоритмический язык |
for (i=1;i<=100;i++) { for (k=1;k<=100;k++) { if (i > k) { A[i][k] = i; } else A[i][k] = -k; } }
| нц для i от 1 до 100 нц для k от 1 до 100 если i > k то A[i,k] := i иначе A[i,k] := -k кц кц |
| Python | |
for i in range(1, 101): for k in range(1, 101): if i > k: A[i][k] = i else: A[i][k] = -k | |
Чему равна сумма элементов фрагмента массива после выполнения этого фрагмента программы?
Из данной программы мы получим такую таблицу
-1 -2 -3 -4
2 -2 -3 -4
 3 3 -3 -4
 4 4 4 -4 и т. д.
Если смотреть симметричность таблицы, то относительно главной диагонали ячейки будут взаимно уничтожаться, так что останется найти только сумму главной диагонали:
-1 - 2 - 3 - 4 - 5 -...- 98 - 99 - 100 = -(1 + 99) - (2 + 98) -...- (49 + 51) - 50 - 100 =
= -100 * 49 - 150 = -4900 - 150 = -5050.

