Запишемо числа в лінійний масив. Потім виведемо їх у зворотному порядку.
Розглянемо розв'язання задачі з переворотом масиву. Для цього скористаємося технікою двох вказівників.
Встановимо дві змінні та (назвемо їх вказівниками):
на початок масиву (i = 1);
на кінець масиву (j = n);
Далі запустимо 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)