Замена элементов массива
Дан целочисленный массив из 30 элементов. Элементы массива принимают натуральные значения от 1 до 10 000 включительно. Опишите на языке программирования алгоритм, который находит минимум среди элементов массива, не делящихся нацело на 8, а затем заменяет каждый элемент, не делящийся нацело на 8, на найденный минимум. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести изменённый массив, каждый элемент — с новой строки.
Для решения на Python используются заранее объявленные переменные a, n, i, j, k: массив a заполнен 30 исходными элементами, n = 30. Запишите фрагмент программы на Python 3, который должен находиться на месте многоточия.
Условие как в банке ФИПИ — открыть и сверить
| Дан целочисленный массив из 30 элементов. Элементы массива могут принимать натуральные значения от 1 до 10 000 включительно. Опишите Например, для исходного массива из шести элементов: 14 16 11 8 9 32 программа должна вывести следующий массив 9 16 9 8 9 32
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на Алгоритмическом языке). | ||||||||||||
| | ||||||||||||
Это задание с развёрнутым решением: ответом считается запись хода решения, а не строка. Напишите решение на бумаге и сравните с разбором — там каждый шаг с обоснованием.
Открыть разбор1Мягкая — с чего смотретьуровень 1 из 3
Какие элементы нужно учитывать при поиске минимума? Как проверить, что число не делится на 8?
2Наводящая — какие числа считатьуровень 2 из 3
Используйте два прохода по массиву: в первом найдите минимум среди элементов, для которых остаток от деления на 8 не равен нулю, во втором замените такие элементы.
3Прямая — фактически решениеуровень 3 из 3
В Python можно сначала присвоить $k = 10001$, затем обновлять $k$ условием $a[i] \% 8 \ne 0$ и $a[i] < k$. После этого замените подходящие элементы значением $k$ и выведите массив.