Разбор
Занесем числа в линейный массив. Затем выведем их в обратном порядке.
Рассмотрим решение задачи с переворотом массива. Для этого воспользуемся техникой двух указателей.
Установим две переменнные и (назовем их указателями):
на начало массива ;
на конец массива ;
Далее запустим while цикл, в котором:
значения и меняются местами;
после чего увеличивается на , а уменьшается на ;
Цикл продолжаем, пока указатели и не встретятся.
Отметим, что поменять значения и можно при помощи дополнительной переменной , выполнив три операции:
Реализация алгоритма
Читаем входные данные.
scanf("%d",&n); for(i = 0; i < n; i++) scanf("%d",&mas[i]);
Выводим числа в обратном порядке.
for(i = n - 1; i >= 0; i--) printf("%d ",mas[i]); printf("\n");
Реализация — с переворотом массива
Объявим массив.
#define MAX 110 int m[MAX];
Читаем входные данные.
scanf("%d",&n); for(i = 1; i <= n; i++) scanf("%d",&m[i]);
При помощи техники двух указателей переворачиваем массив.
i = 1; j = n; while(i < j) { temp = m[i]; m[i] = m[j]; m[j] = temp; i++; j--; }
Выводим результирующий массив.
for(i = 1; i <= n; i++) printf("%d ",m[i]); printf("\n");
Реализация — STL reverse
#include <cstdio> #include <vector> #include <algorithm> using namespace std; int n, i; vector<int> mas; int main(void) { scanf("%d",&n); mas.resize(n); for(i = 0; i < n; i++) scanf("%d",&mas[i]); reverse(mas.begin(),mas.end()); for(i = 0; i < n; i++) printf("%d ",mas[i]); printf("\n"); return 0; }
Java реализация — вывод массива справа налево
import java.util.*; public class Main { public static void main(String[] args) { Scanner con = new Scanner(System.in); int n = con.nextInt(); int mas[] = new int[n]; for(int i = 0; i < n; i++) mas[i] = con.nextInt(); for(int i = n - 1; i >= 0; i--) System.out.print(mas[i] + " "); System.out.println(); con.close(); } }
Java реализация — reverse
import java.util.*; public class Main { public static void main(String[] args) { Scanner con = new Scanner(System.in); int n = con.nextInt(); int m[] = new int[n]; // Read data for(int i = 0; i < n; i++) m[i] = con.nextInt(); // Reverse an array int i = 0, j = n - 1; while(i < j) { int temp = m[i]; m[i] = m[j]; m[j] = temp; i++; j--; } // Print the reversed array for(i = 0; i < n; i++) System.out.print(m[i] + " "); System.out.println(); con.close(); } }
Python реализация
Читаем входные данные.
n = int(input()) lst = list(map(int, input().split()))
Выводим числа в обратном порядке.
for i in range(n - 1,-1,-1): print(lst[i], end = " ")
Python реализация — reverse
Читаем входные данные.
n = int(input()) lst = list(map(int, input().split()))
Переворачиваем список при помощи функции reverse.
lst.reverse()
Выводим перевернутый список.
print(*lst)