首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

螺旋矩阵的递归普及

2012-12-21 
螺旋矩阵的递归推广推广的M,N维的情况,M可以不等于Nusing Systemnamespace ConsoleApplication1{class Pr

螺旋矩阵的递归推广
推广的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);        }    }}

热点排行