现在我要输出以下格式:
比如说n是一整型(n>0)
当n=3时输出
111
121
111
当n=4时输出
1111
1221
1221
1111
当n=5时输出
11111
12221
12321
12221
11111
以此类推
用c#语言写一个函数,该如何去写啊?什么样的思路啊?请教高手了,谢谢

解决方案 »

  1.   

                                          switch(a)
                                           {
                                               case 3:
                                                   break;
                                               case 4:
                                                   break;
                                               case 5:
                                                   break;                                       }
      

  2.   

    算法没有优化,不过还是实现了那个效果哈
    using System;namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                printSquare(9);
            }        private static void printSquare(int n)
            {
                for (int i = 1; i <= (1+n)/2; i++)
                {
                    for (int j = 1; j <= n; j++)
                    {
                        int tmp = j;
                        tmp = Math.Min(i, Math.Min(j, n - j+1));
                        Console.Write(tmp);
                    }
                    Console.WriteLine();
                }
                for (int i = (1 + n) / 2; i < n; i++)
                {
                    for (int j = 1; j <= n; j++)
                    {
                        int tmp = j;
                        tmp = Math.Min(n-i,Math.Min( j,n-j+1));
                        Console.Write(tmp);
                    }
                    Console.WriteLine();
                }
            }
        }
    }
      

  3.   

    //简单优化了一下 private static void printSquare(int n)
            {
                for (int i = 1; i <= n; i++)
                {
                    for (int j = 1; j <= n; j++)
                    {
                        //看做数组来处理,则arr[i,j]的值为i,n - i + 1,j,n - j + 1的最小值
                        Console.Write(Math.Min(Math.Min(i, n - i + 1), Math.Min(j, n - j + 1)));
                    }
                    Console.WriteLine();
                }
                Console.WriteLine();
            }
      

  4.   

            static void PrintList(int Length)
            {
                int m, n;
                for (int i = 1; i <= Length; i++)
                {
                    for (int j = 1; j <= Length; j++)
                    { 
                        m = i > Length/2 ? Length - i + 1 : i;
                        n = j > Length/2 ? Length - j + 1 : j;                    Console.Write(Math.Min(m,n));                }
                    Console.WriteLine();
                }
            }