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

八皇后

时间:2016-09-23 14:49:07      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

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);

          }

          }

      }

 }

八皇后

标签:

原文地址:http://www.cnblogs.com/shuailu/p/5899931.html

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