6x6
7x9
输出顺时针的回旋矩阵,比较简单,就不多作说明了,直接贴代码,可以按需要翻译成其他语言版本,肯定有更简单高效的写法:
static void Main()
{
int n = 6, m = 6;
int[,] num = new int[n,m];
int count = 1;
int x = 0, y = 0;
int dx = 1, dy = 0;
while (count <= n * m)
{
num[x, y] = count;
x += dx;
y += dy;
if (dx == 1 && (x >= n - 1 || num[x + 1, y] != 0))
{
dx = 0;
dy = 1;
}
else if (dy == 1 && (y >= m - 1 || num[x, y + 1] != 0))
{
dx = -1;
dy = 0;
} else if (dx == -1 && (x <= 0 || num[x - 1, y] != 0))
{
dx = 0;
dy = -1;
} else if (dy == -1 && (y <= 0 || num[x, y - 1] != 0))
{
dx = 1;
dy = 0;
}
count++;
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
Console.Write("{0}\t", num[j, i]);
}
Console.WriteLine();
}
Console.ReadKey();
}