新算法,啦啦啦。
#include <stdio.h>
#include <math.h>
short queenplaces[92][8],now_line;
void putqueen(int n)//n+1表示处理到哪一个皇后了
{
short flag,i,j,k;
if(n==8)
{
now_line++;
return;
}
for(i=0;i<8;i++)//i+1表示皇后所在的列数
{
flag=1;
for(j=0;j<n;j++)
{
if(queenplaces[now_line][j]==i||(abs(n-j)==abs(queenplaces[now_line][j]-i)))
{
flag=0;
break;
}
}
if(flag)
{
for(k=now_line;k<92;k++)
queenplaces[k][n]=i;
putqueen(n+1);
}
}
}
int main()
{
int num;
scanf("%d",&num);
int i,j,place[num];
for(i=0;i<num;i++)
scanf("%d",&place[i]);
putqueen(0);
for(i=0;i<num;i++)
{
for(j=0;j<8;j++)
printf("%d",queenplaces[place[i]-1][j]+1);
printf("\n");
}
return 0;
}