zoukankan      html  css  js  c++  java
  • 控制台打印螺旋数组

    最近园里面在聊打印螺旋数组,我业余写了一个自己的实现,如下:
     
    代码
    static void Main(string[] args)
            {
                
    int n = 0;

                
    try
                {
                    n 
    = Convert.ToInt32(Console.ReadLine());
                }
                
    catch {
                    Console.WriteLine(
    "Error");
                }

                
    int[,] arr = new int[n, n];

                Spiral(n, arr);

                PrintMatrix(n, arr);

                Console.ReadLine();
            }

            
    //螺旋数组
            public static void Spiral(int n,int[,] matrix)
            {
                
    int i = 0, j = 0, m = 0, k = 0;

                
    for (m = 0; m < n; m++)
                {

                    
    //方向→
                    for (i = m, j = m; j < n - m; j++)
                    {
                        matrix[i, j] 
    = ++k;
                    }
                    j
    --;
                    
                    
    //方向↓
                    for (i = i + 1; i < n - m; i++)
                    {
                        matrix[i, j] 
    = ++k;
                    }
                    i
    --;

                    
    //方向←
                    for (j = j - 1; j >= m; j--)
                    {
                        matrix[i, j] 
    = ++k;
                    }
                    j
    ++;


                    
    //方向↑
                    for (i = i - 1; i > m; i--)
                    {
                        matrix[i, j] 
    = ++k;
                    }
                    i
    ++;
                }
            }

           
            
    //打印
            public static void PrintMatrix(int n,int[,] matrix)
            {
                
    for (int a = 0; a < n; a++)
                {
                    
    for (int b = 0; b < n; b++)
                    {
                        
    if (matrix[a, b] < 10)
                        {
                            Console.Write(
    "0{0} ", matrix[a, b]);
                        }
                        
    else
                        {
                            Console.Write(
    "{0} ", matrix[a, b]);
                        }
                    }
                    Console.WriteLine();
                }
            }
  • 相关阅读:
    AGC023C Painting Machines
    LG3834 可持久化线段树1
    又是一天
    ARC103F Distance Sums
    CF1053E Euler tour
    UOJ22 外星人
    洛谷4248 AHOI2013差异 (后缀数组SA+单调栈)
    洛谷2408不同字串个数/SPOJ 694/705 (后缀数组SA)
    CF49E Common ancestor(dp+dp+dp)
    洛谷4051 JSOI2007 字符加密(SA)
  • 原文地址:https://www.cnblogs.com/Kurodo/p/1688586.html
Copyright © 2011-2022 走看看