标签:
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