Заполнение матрицы по спирали - C# (198761)

Узнай цену своей работы

Формулировка задачи:

Всем доброго времени суток. Есть такая задача: Заполнить квадратную матрицу, размерностью (N), целыми числами 1,2,3,4... Записываю их по спирали. Начало спирали левого угла,вправо,вниз,влево,вверх,вправо и т.д. Не могу понять,как решить задачу.

Решение задачи: «Заполнение матрицы по спирали»

textual
Листинг программы
            const int n = 6;
            const int m = 8;
            int[,] matrix = new int[n, m];
 
            int row = 0;
            int col = 0;
            int dx = 1;
            int dy = 0;
            int dirChanges = 0;
            int visits = m;
 
            for (int i = 0; i < matrix.Length; i++) {
                matrix[row, col] = i + 1;
              if (--visits == 0) {
                visits = m * (dirChanges %2) + n * ((dirChanges + 1) %2) - (dirChanges/2 - 1) - 2;
                int temp = dx;
                dx = -dy;
                dy = temp;
                dirChanges++;
              }
 
              col += dx;
              row += dy;
            }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.267 из 5