风格要象C#,不要写得象C和C++的代码那样难看..

解决方案 »

  1.   

    class Q8
    {
      static int[,] data=new int[8,8];   static void QueenFire(int i, int j)                          //本方法着为讨论点,请给出算法; 
      { 
        for (int k = 0; k < 8; k++)
        {
          data[i, k] = data[k, j] = 1;                             // 纵横向
        }
        for (int k = 1; k < 8; k++)
        {
          if (i + k <  8 && j + k <  8) data[i + k, j + k] = 1;    // 正斜向正向
          if (i - k >= 0 && j - k >= 0) data[i - k, j - k] = 1;    // 正斜向反向
          if (i + k <  8 && j - k >= 0) data[i + k, j - k] = 1;    // 反斜向正向
          if (i - k >= 0 && j + k <  8) data[i - k, j + k] = 1;    // 反斜向反向
        }
      }  static void Print()                                          //这个算法不需要,不着为讨论点
      {
        for (int i = 0; i < 8; i++)
        {
          for (int j = 0; j < 8; j++)
          {
            System.Console.Write(data[i,j] == 0 ? '-' : '*');
          }
          System.Console.WriteLine();
        }
      }
      
      static void Main()
      {
        QueenFire(2,5);
        Print();
      } 
      

  2.   

    忘记描述题目了要求:在int[,] data=new int[8,8]的方阵中,放置8个王后,要求她们不互杀(互吃)关于国际象棋中王后的相关讯息,请参见国际象棋规则,在这里恕不赘述.
      

  3.   

    随便放还是有一个Queen的起始点?
      

  4.   

    我觉得N皇后问题算法的时间复杂度应该为O(N).再大就不对了.
      

  5.   

    给个此 o(n) 时间复杂度的推导公式我看看。如果是 o(n),它的推导应该异常简单,连最少量的多项式知识都不需要,比推导 1+2+3+..._n 的公式都要简单很多。那么请给出推到公式来看看!
      

  6.   

    80个王后?!sp1234把这个问题,引深了啊那你得需要多大的方阵,怎么也得int[,] data=new int[80,80]吧目前我认为不需要严格的数学证明就可以知道,N个王后最小需要的棋盘大小,为int[N,N]标准解决法中好象会有90多个不同的结果,你这推广到80个方阵的话,不知道成什么样子了..
      

  7.   

    我给一个时间复杂度推导的提示:t(n)=t(n-1)+s(n-1)t(n)代笔求解n个皇后的时间,s(n)代表执行那个选择与前n个皇后都不相互攻击的第n+1个位置的子程序的时间。请根据这个公式,推导出它的时间复杂度是 o(n) ?!
      

  8.   

    在1个NXN的棋盘中搁N个queen,我觉得是不是只要按"日"字型去摆就行啊? 所以是O(N)级的.想法而已.我去试试.
      

  9.   

    C# 实现八皇后太长了贴不上来http://hi.baidu.com/wangzhe1945/blog/item/84accb07d37032ce7a894771.html