Заполнение матрицы по спирали - 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д