蛇形添数

在n*n的方阵填入1,2,3……n*n.最后形成蛇形。例如n=4时的方阵为:其中(n<=8)

10  11  12  1

9    16  13  2

8    15   14  3

7   6    5     4

 

源程序如下:

 

using System;

namespace TestConsole
{

    class Program
    {
        static void Main(string[] args)
        {

            int[,] snake=new int[9,9];

            Console.Write("Input:");
            int n = int.Parse(Console.ReadLine());


            int x = 0;
            int y = n-1;

            snake[x, y] = 1;

            int number=1;

            while (number < n*n)
            { 
                while(x+1<n)
                {
                    if (snake[x + 1, y] == 0)
                    {
                        number++;
                        x++;
                        snake[x, y] = number;
                    }
                    else
                    {
                        break;
                    }

                   // Console.Write("向下[{0},{1}]:{2}", x, y, snake[x, y] + "  ");
                }

                while (y > 0)
                {
                    if (snake[x, y - 1] == 0)
                    {
                        number++;
                        y--;
                        snake[x, y] = number;

                    }
                    else
                    {
                        break;
                    }
                    //Console.Write("向左[{0},{1}]:{2}",x,y, snake[x, y] + "  ");
                }



                while (x > 0)
                {
                    if (snake[x - 1, y] == 0)
                    {
                        number++;
                        x--;
                        snake[x, y] = number;

                    }
                    else
                    {
                        break;
                    }
                   // Console.Write("向上[{0},{1}]:{2}", x, y, snake[x, y] + "  ");
                }



                while (y < n)
                {
                    if (snake[x, y + 1] == 0)
                    {
                        number++;
                        y++;
                        snake[x, y] = number;

                    }
                    else
                    {
                        break;
                    
                    }
                   // Console.Write("向右[{0},{1}]:{2}", x, y, snake[x, y] + "  ");
                }

            }
            Console.WriteLine();
            Console.WriteLine("输入结果:");
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    Console.Write(snake[i, j] + "   ");
                    if ((j + 1) % n == 0)
                    {
                        Console.WriteLine();
                    }
                }
            } 
            Console.ReadKey();
            }
               
        }


    }

 

转载于:https://www.cnblogs.com/batv2009/archive/2012/05/08/2489420.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值