Заполнение матрицы по спирали - C# (200884)
Формулировка задачи:
Заполнить матрицу натуральными числами l..N*N, где N - размер матрицы. В программе предусмотреть возможность изменения размера матрицы.
Можно через консоль, помогите пожалуйстаРешение задачи: «Заполнение матрицы по спирали»
textual
Листинг программы
using System;
namespace A
{
class Program
{
static void Main(string[] args)
{
const int N = 9;
int[,] mas = new int[N, N];
int aY = N / 2, aX = N / 2, cnt = 1;
mas[aY, aX] = cnt++;
for (int u = 1; u < N / 2 + 1; u++)
{
aY++; aX++;
for (int k = 0; k < 2 * u; k++) mas[aY, --aX] = cnt++;
for (int k = 0; k < 2 * u; k++) mas[--aY, aX] = cnt++;
for (int k = 0; k < 2 * u; k++) mas[aY, ++aX] = cnt++;
for (int k = 0; k < 2 * u; k++) mas[++aY, aX] = cnt++;
}
for (int y = 0; y < N; y++)
{
for (int x = 0; x < N; x++)
Console.Write("{0,2} ", mas[y, x]);
Console.WriteLine();
}
Console.Read();
}
}
}