Решение: Подсчёт пар чётных элементов
Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, в которых оба числа являются чётными. В данной задаче под парой подразумевается два подряд идущих элемента массива.
Например, для массива из пяти элементов: 6; 1; 4; 6; 10 — ответ: 2.
Исходные данные объявлены следующим образом. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
Бейсик: объявлены константа N = 20, массив A от 1 до N и целочисленные переменные I, J, K; в цикле от 1 до 20 вводятся элементы A(I).
Python: объявлены список a, переменная n = 20 и целочисленная переменная i; в цикле for i in range(0, n) в список a добавляются введённые элементы. Допускается также использовать две целочисленные переменные j и k.
Алгоритмический язык: объявлены целочисленная переменная N = 20, целочисленный массив a[1:N] и целочисленные переменные i, j, k; в цикле от 1 до N вводятся элементы a[i].
Паскаль: объявлены константа N = 20, массив a: array [1..N] of integer и целочисленные переменные i, j, k; в цикле от 1 до N вводятся элементы a[i].
Си: объявлены константа N = 20, массив int a[N] и целочисленные переменные i, j, k; в цикле от 0 до N - 1 вводятся элементы a[i].
В ответе приведите фрагмент программы или описание алгоритма на естественном языке, который должен находиться на месте многоточия после ввода массива. При записи решения на другом языке программирования укажите его название и используемую версию. Используйте те же исходные данные и переменные, которые предложены в условии.
Решение по шагам
4 шагаВ массиве из 20 элементов рассматриваются пары с индексами $(1,2), (2,3), \ldots, (19,20)$, поэтому достаточно перебрать первый индекс пары от 1 до $N-1$.
$$i = 1, 2, \ldots, N-1$$Число является чётным, если остаток от деления на 2 равен нулю. Для каждой пары проверяем чётность обоих элементов.
$$a[i] \bmod 2 = 0 \land a[i+1] \bmod 2 = 0$$При выполнении обоих условий увеличиваем счётчик найденных пар на единицу.
После завершения перебора выводим значение счётчика. Например, на Python подходящий фрагмент имеет вид: k = 0; for j in range(0, n - 1): if a[j] % 2 == 0 and a[j + 1] % 2 == 0: k += 1; print(k).
Перебрать все 19 пар соседних элементов, увеличить счётчик при чётности обоих элементов и вывести счётчик.
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют только один элемент пары.
Перебирают индекс до N включительно и обращаются к элементу за пределами массива.
Подсчитывают все чётные элементы, а не пары соседних чётных элементов.
Забывают обнулить счётчик перед началом перебора.