题目:
输入一个整数n,要求输出一个N×N蛇形阵(n<10),比如输入整数4,则输出如下蛇形阵:

1	2	3	4
12	13	14	5
11	16	15	6
10	9	8	7

<mark>看到别人写心里痒痒,好久没有写过算法题,找到一到比较经典的题目写一写。
一般写这些算法题,都需要找规律,想一些特殊情况,甚至可以代一些数字进去。</mark>

上代码:

Console.WriteLine("请输入矩阵的行数n,你将生成一个n*n矩阵:");
            int n = Convert.ToInt32(Console.ReadLine());
            int num = 1;//矩阵值
            int[,] arr = new int[n, n];
            int a =Convert.ToInt32( Math.Ceiling(n*1.0 / 2));//根据观察总结,转的圈数为行数除以2,如果行数为奇数,则向上取整,即+1
            for (int i = 0; i < a; i++)
            {
                for (int j = i; j < n - i; j++)  //用于每一圈判断第一行 
                {
                    arr[i, j] = num++;
                }
                for (int j = i + 1; j < n - i - 1; j++)  //用于每一圈判断最后一列
                {
                    arr[j, n - i - 1] = num++;
                }
                for (int j = n - i - 1; j > i; j--)      //用于判断每一圈最后一行
                {
                    arr[n - i - 1, j] = num++;
                }
                for (int j = n - i - 1; j > i; j--)      //用于判断每一圈第一列
                {
                    arr[j, i] = num++;
                }
            }

            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    Console.Write(arr[i, j] + "\t");
                }
                Console.WriteLine();
            }
            Console.ReadKey();