Решение: Вычисление значения переменной s
В программе используется одномерный целочисленный массив $A$ с индексами от 0 до 11. Значения элементов массива $A[i]$ приведены в таблице. Определите значение переменной $s$ после выполнения фрагмента программы.
| $i$ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| $A[i]$ | 14 | 13 | 15 | 8 | 4 | 12 | 30 | 21 | 22 | 16 | 5 | 9 |
Изначально $s = 0$ и $n = 0$. Для $i$ от 1 до 11: если $A[i] < A[n]$, то $s := s + A[i] \bmod i$; иначе $A[n] := A[i]$.
Решение по шагам
7 шаговВ начале $s=0$, $A[0]=14$. При $i=1$: $13<14$, поэтому к $s$ прибавляется $13\bmod 1=0$.
При $i=2$: $15<14$ — неверно, поэтому $A[0]$ изменяется на 15.
При $i=3$: $8<15$, добавляем $8\bmod 3=2$. При $i=4$: $4<15$, добавляем $4\bmod 4=0$.
При $i=5$: $12<15$, добавляем $12\bmod 5=2$. Теперь $s=4$.
При $i=6$: $30<15$ — неверно, поэтому $A[0]$ изменяется на 30.
Для $i=7,8,9,10,11$ условие выполняется. Прибавляем соответственно $21\bmod 7=0$, $22\bmod 8=6$, $16\bmod 9=7$, $5\bmod 10=5$, $9\bmod 11=9$.
Суммируем все полученные остатки:
$$s=0+2+0+2+0+6+7+5+9=31$$Где здесь ошибаются
Не учитывать изменение значения $A[0]$ при невыполнении условия.
Путать остаток от деления с результатом обычного деления.
Пропустить итерации с индексами 10 и 11.