Задача
Задан массив из $n$ целых чисел. Переставьте соседние элементы массива ($a_{0}$ с $a_{1}$, $a_{2}$ с $a_{3}$ и так далее). Если элементов нечетное количество, то последний элемент следует оставить на своем месте.
Входные данные
В первой строке записано число $n$. В следующей строке записано $n$ целых чисел. Все числа по модулю не превышают $100$.
Выходные данные
Вывести обновленный массив.
Тесты
Входные данные | Выходные данные |
---|---|
7 3 5 -7 7 5 -9 -4 |
5 3 7 -7 -9 5 -4 |
8 -9 81 27 -38 2 6 -56 -21 |
81 -9 -38 27 6 2 -21 -56 |
2 25 -76 |
-76 25 |
3 55 44 33 |
44 55 33 |
1 99 |
99 |
Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
class Main{ public static void main (String[] args) throws java.lang.Exception { java.util.Scanner i = new java.util.Scanner(System.in); int n = i.nextInt(); int arr[] = new int[n]; for(int k = 0; k < n; k++){ arr[k] = i.nextInt(); } for(int k = 1; k < n; k+=2){ int q = arr[k]; arr[k] = arr[k-1]; arr[k-1] = q; } for(int k = 0; k < n; k++){ System.out.print(arr[k] + " "); } } } |
Решение
Будем переставлять соседние элементы массива следующим образом: arr[1] с arr[0], arr[3] с arr[2] и так далее до конца массива (т.е. каждый нечетный по счету элемент меняем местами с предыдущим). При этом совершенно неважно, четное кол-во элементов или нечетное.