25

Решение: Замена кратных четырём

ЕГЭ · Информатика · Задание 25 · Массивы и строки
ПовышеннаяФИПИC23C45Развёрнутое решение≈ 10 минутРазбор в 4 шага
Условие

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от −10 000 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит максимум среди элементов массива, кратных 4, а затем заменяет каждый элемент, кратный 4, на число, равное найденному максимуму. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести изменённый массив, каждый элемент выводится с новой строки.

В качестве ответа приведите фрагмент программы, который должен находиться на месте многоточия в одном из предложенных шаблонов. Разрешается использовать только объявленные в шаблоне переменные. Для Python используются массив `a`, число `n` и целочисленные переменные `i`, `j`, `k`.

Открыть задачу и решить самому
Дальше ответЕсли ещё решаете — начните с подсказок: они ведут к ответу, но не выдают его.
К подсказкам

Решение по шагам

4 шага
1

В переменной `j` храним максимальный найденный элемент, кратный 4. Так как элементы массива не меньше −10 000, начальное значение −10 001 гарантированно меньше любого элемента массива.

$$j = -10001$$
2

В первом проходе рассматриваем только элементы, кратные 4, и сохраняем среди них максимум.

$$a[i] \bmod 4 = 0 \ \text{и}\ a[i] > j \Rightarrow j := a[i]$$
3

Во втором проходе каждый элемент, кратный 4, заменяем найденным максимумом `j`.

$$a[i] \bmod 4 = 0 \Rightarrow a[i] := j$$

После замены выводим все 30 элементов массива по одному в строке.

Ответ

Python:
j = -10001
for i in range(n):
if a[i] % 4 == 0 and a[i] > j:
j = a[i]
for i in range(n):
if a[i] % 4 == 0:
a[i] = j
for i in range(n):
print(a[i])

Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.

Где здесь ошибаются

Поиск максимума среди всех элементов, а не только среди кратных 4.

Замена только первого найденного элемента вместо всех элементов, кратных 4.

Использование дополнительной переменной, не объявленной в условии.

Вывод массива до выполнения замен.

Неверная индексация массива в выбранном языке программирования.

Закрепить приёмВ теме «Массивы и строки» ещё 237 задач — с ответом и таким же разбором.
Тренироваться

Как решать задание 25 ЕГЭ, информатика

Разбор этой задачи разложен на 4 шага: видно, откуда берётся каждое число и где теряется балл. Ответ приведён рядом с выкладками, а не вместо них.

Задача из темы «Массивы и строки»: в ней 238 задач, и у каждой есть такой же разбор. Регистрация не нужна.