Решение: Максимальный элемент, не кратный трём
Дан целочисленный массив из 20 элементов. Элементы массива принимают целые значения от $-10\,000$ до $10\,000$ включительно. Наличие хотя бы одного элемента, который не делится на 3, гарантируется. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести максимальный элемент массива, который не делится на 3.
Исходные данные уже введены в массив $A$ из 20 элементов. Разрешается использовать только целочисленные переменные $I$, $J$, $K$ и переменные, объявленные в заготовке соответствующего языка. Необходимо привести фрагмент программы, который записывается вместо многоточия.
Решение по шагам
4 шагаНужно рассматривать только элементы, остаток от деления которых на 3 не равен нулю.
$$A[I] \bmod 3 \ne 0$$Так как подходящий элемент гарантирован, можно найти первый такой элемент и сохранить его как текущий максимум. Например, просмотреть массив слева направо и при первом подходящем элементе записать его в переменную $J$.
После нахождения начального значения просматриваем оставшиеся элементы. Если элемент не делится на 3 и больше текущего максимума, заменяем значение $J$.
После завершения просмотра массива выводим значение $J$. Один из возможных вариантов на Python:
$$j = None for i in range(20): if a[i] % 3 != 0 and (j is None or a[i] > j): j = a[i] print(j)$$Просмотреть массив, выбрать элементы с условием $A[I] \bmod 3 \ne 0$, сохранить наибольший из них и вывести его.
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Искать максимум среди всех элементов, не проверяя делимость на 3.
Проверять условие $A[I] \bmod 3 = 0$, то есть выбирать элементы, кратные 3.
Инициализировать максимум нулём: максимальный подходящий элемент может быть отрицательным.
Использовать переменные, которые не были объявлены в условии.