八皇后

public class Queen8{

  statc final int QueenMax=8;

  static int oktimes=0;

  static int chess[]=new int[queenMax];

  public static void mian(String args[]){

     for(int i=0;i<QueenMax;i++)

     chess[i]=-1;

     placequeen(0); 

     System.out.println("\n\n\n八皇后共有"+oktimes+"个解法 made by yifi 2003");

   }

      public static void placequeen(int num){

          int i=0;

          boolean qsave[]=new boolean[QueenMax];

          for(;i<QueenMax;i++)

           qsave[i]=true;

           i=0;

           while(i<num){

               qsave[chess[i]]=false;

               int k=num-i;

                if((chess[i]+k>=0)&&(chess[i]+k,QueenMax))qsave[chess[i]+k]=false;

                if((chess[i]-k>=0)&&(chess[i]-k<QueenMax))qsave[chess[i]-k]=false;

                i++;

           }

        for(i=0;i<queenMax;i++){

            if(qsave[i]==false)continue;

            chess[num]=i;

             placequeen(num+1);

         }

          else{

          chess[num]=i;

          oktimes++;

          System.out.println("这是第"+oktimes+"个解法如下");

          System.out.println("第n行:1 2 3 4 5 6 7 8");

          for(i=0;i<QueenMax;i++){

          String row="第"+(i+1)+"行";

          if(chess[i]==0);

          else

          for(int j=0;j<chess[i];j++)

          row+=“--”;

          row+="++";

          int j=chess[i];

          while(j<QueenMax-1)

          {row+="--";j++;}

          System.out.println(row);

          }

          }

      }

 }

posted @ 2016-09-23 14:28  萧朗陌璐  阅读(129)  评论(0)    收藏  举报