e-olymp 488. Обход матрицы змейкой

Задача

По данному числу [latex]n[/latex] заполните квадратную матрицу размером [latex]n*n[/latex] целыми числами от [latex]1[/latex] до [latex]n^{2}[/latex] следующим образом:

  • в левом верхнем углу находится число [latex]1[/latex];
  • далее числа располaгаются «змейкой», т.е. по возрастанию слева направо в нечётных строках, и справа налево — в чётных;
  • Входные данные

    Одно целое число [latex]n[/latex] [latex](1 \leqslant n \leqslant 100)[/latex].

    Выходные данные

    Вывести заполненную матрицу в виде [latex]n[/latex] строк по [latex]n[/latex] целых чисел в каждой.

    Тесты

    Входные данные Выходные данные
    1 1 1
    2 3 1 2 3
    6 5 4
    7 8 9

    3 5

    1 2 3 4 5
    10 9 8 7 6
    11 12 13 14 15
    20 19 18 17 16
    21 22 23 24 25

    4 10

    1 2 3 4 5 6 7 8 9 10
    20 19 18 17 16 15 14 13 12 11
    21 22 23 24 25 26 27 28 29 30
    40 39 38 37 36 35 34 33 32 31
    41 42 43 44 45 46 47 48 49 50
    60 59 58 57 56 55 54 53 52 51
    61 62 63 64 65 66 67 68 69 70
    80 79 78 77 76 75 74 73 72 71
    81 82 83 84 85 86 87 88 89 90
    100 99 98 97 96 95 94 93 92 91

    Код

    Решение

    Создаем переменные flag_even для четных строк и flag_odd для нечетных. Они будут содержать значение элемента матрицы на каждом шаге алгоритма в соответствующих строках.
    Следует обратить внимание, что в условии указано, что числа идут слева направо в нечётных строках, и справа налево — в чётных, но в массивах нумерация идет с [latex]0[/latex] (четное число), поэтому в коде условие обратное.
    В циклах выполняем операции и сразу же печатаем элементы матрицы.

    Ссылки

  • Условие задачи на eolymp.com
  • Решение задачи на ideone.com
  • Засчитанное решение на eolymp.com
  • 2 thoughts on “e-olymp 488. Обход матрицы змейкой

    1. По оформлению:
      — Меньше либо равно у нас принято обозначать иначе. Найдите в LaTeX другой способ.
      — В тестах пустые строки лучше удалить.
      — В описании решения лучше описывать алгоритм, а не код. Код и сам себя отлично описывает, если вы не хотите отметить какой-то интересный инструмент или трюк.

      По алгоритму. К сожалению такое решение очень избыточно использует ресурсы. Заводить массив и последовательно его заполнять, потом опять же последовательно печатать его элементы ненужно. Вообще массива здесь не нужно. Только печать.

    2. Хорошо.
      Я, кстати, так решал:

    Добавить комментарий