Решение: Изменение элементов массива
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать натуральные значения от 1 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит минимум среди элементов массива, кратных 4, а затем увеличивает каждый элемент, кратный 4, на число, равное найденному минимуму. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести изменённый массив, каждый элемент выводится с новой строки.
Например, для исходного массива из шести элементов: 12, 5, 8, 5, 8, 16 программа должна вывести: 20, 5, 16, 5, 16, 24.
Исходные данные объявлены заранее: массив a содержит 30 элементов, переменная n равна 30, а также разрешается использовать целочисленные переменные i, j и k. В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Можно использовать Python 3.
Решение по шагам
4 шагаДля поиска минимума среди элементов, кратных 4, перебираем все элементы массива и проверяем условие делимости без остатка.
$$a[i] \bmod 4 = 0$$Переменную j первоначально задаём равной 10001 — числу, превосходящему максимальное возможное значение элемента массива. При нахождении подходящего элемента меньшего значения обновляем j.
Повторно перебираем массив. Каждый элемент, кратный 4, увеличиваем на найденный минимум j.
Выводим все элементы изменённого массива по одному в строке.
Фрагмент программы на Python 3: найти минимум среди элементов, кратных 4, вторым проходом прибавить его к каждому такому элементу и вывести массив.
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Изменяют элементы массива во время поиска минимума.
Проверяют кратность с помощью деления вместо операции получения остатка.
Прибавляют минимум ко всем элементам массива, а не только к элементам, кратным 4.
Забывают вывести каждый элемент с новой строки.