螺旋矩阵的递归推广
推广的M,N维的情况,M可以不等于N
using System;namespace ConsoleApplication1{ class Program { public static int[,] a; static int M=7, N=9; public static void print() { for (int i = 0; i < M; i++) { for (int j = 0; j < N; j++) System.Console.Write("{0,5} ", a[i, j]); System.Console.WriteLine(); } } static void Main(string[] args) { a=new int[M,N]; CreateMatrix(M,N,1,0); print(); System.Console.Read(); } public static void CreateMatrix(int m, int n, int intValue, int circle) { if (m < 0 || n < 0) return; for (int i = 0; i < m; i++) { if (i == 0) for (int j = 0; j < n; j++) a[circle, circle + j] = intValue + j; if (i != 0 && i != m - 1) { a[circle + i, circle] = intValue + 2 * n + 2 * m - 4 - i; a[circle + i, circle + n - 1] = intValue + n -1+i; } if (i != 0 && i == m - 1) for (int j = 0; j < n; j++) a[circle + m - 1, circle + j ] = intValue + 2 * n + m - 2 - j-1; } CreateMatrix(m - 2, n - 2, intValue + 2 * n + 2 * m - 4, circle + 1); } }}