Условие задачи
Задана последовательность целых чисел. Подсчитать количество элементов, у которых чётные соседи.
Входные данные
В первой строке задано количество элементов последовательности $n$ $(n \leqslant 100)$. Во второй строке заданы сами элементы, значение каждого из которых по модулю не превышает $100$.
Выходные данные
Вывести в одной строке количество элементов последовательности с чётными соседями.
Тесты
№ | Входные данные | Выходные данные |
1 | 6 1 2 3 4 5 6 |
2 |
2 | 9 3 6 3 5 2 9 1 2 5 |
0 |
3 | 3 2 1 2 |
1 |
4 | 6 13 24 54 66 44 77 |
2 |
5 | 4 100 224 666 222 |
2 |
Программный код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
public class Main { public static void main(String[] args) { java.util.Scanner Javain = new java.util.Scanner(System.in); int i=1, n, prev, pres, fut, count = 0; n = Javain.nextInt(); prev = Javain.nextInt(); //вводим предыдущий элемент pres = Javain.nextInt(); //вводим текущий элемент while (i <= n - 2) { fut = Javain.nextInt(); if (prev % 2 == 0 && fut % 2 == 0) count++; prev = pres; //приравниваем предыдущий к текущему pres = fut; //приравниваем текущий к будущему i++; } System.out.print(count); } } |
Решение
Идея решения задачи состоит в том, чтобы создать три переменные: $prev$ (предыдущий), $pres$ (настоящий, текущий) и $fut$ (будущий). Затем в цикле мы перезаписываем эти переменные т.е.: настоящий становится прошлым, будущий настоящим, а новый будущий мы читаем из cin. Так же, в ходе решения задачи обнаружилась проблема с чтением количества элементов. Допустим, если мы записали, что $n=6$, а дальше ввели $10$ элементов, то количество элементов с чётными соседями будет считаться для $10$ элементов. Чтобы избежать этого мы ограничиваем количество читаемых элементов с помощью счётчика i++ и цикла while.