码迷,mamicode.com
首页 > 其他好文 > 详细

八皇后问题

时间:2017-03-24 13:38:36      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:string   bool   als   false   highlight   stat   i++   pre   ati   


        class Program
        {
            static void Main(string[] args)
            {
                MainQueen();
            }
            static int count = 0;
            public static void MainQueen()
            {
                int n = Int32.Parse(Console.ReadLine());
                List<int> queen = new List<int>(n);
                for (int i = 1; i <= n; i++)
                {
                    queen.Add(0);
                }
                PutQueen(n, queen, 0);
                Console.WriteLine(count);
                Console.ReadKey();
            }

            private static void PutQueen(int n, List<int> queen, int row)
            {
                for (queen[row] = 1; queen[row] <= n; queen[row]++)
                {
                    if (CheckQueens(queen, row))
                    {
                        row++;
                        if (row < n)
                        {
                            PutQueen(n, queen, row);
                        }
                        else
                        {
                            count++;
                            for (int i = 0; i < n; i++)
                            {
                                Console.Write(queen[i].ToString() + " ");
                            }
                            Console.WriteLine();
                        }
                        row--;
                    }
                }
            }

            private static bool CheckQueens(List<int> queen, int row)
            {
                for (int i = 0; i < row; i++)
                {
                    if (Math.Abs(queen[i] - queen[row]) == Math.Abs(i - row) || queen[i] == queen[row])
                    {
                        return false;
                    }
                }
                return true;
            }
        }

  

 

八皇后问题

标签:string   bool   als   false   highlight   stat   i++   pre   ati   

原文地址:http://www.cnblogs.com/tgsslzt/p/6610832.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!