Перевертач#2098

Перевертач (Розбір)

Запишемо числа в лінійний масив. Потім виведемо їх у зворотному порядку.

Розглянемо розв'язання задачі з переворотом масиву. Для цього скористаємося технікою двох вказівників.

Встановимо дві змінні та (назвемо їх вказівниками):

Далі запустимо 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)