//八皇后问题
#include<stdio.h>
#include<math.h>
int queenPlaces[92][8];
int count=0;
int board[8][8];
void putQueen(int ithQueen);
int main()
{
int n,i,j;
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
board[i][j]=-1;
for(j=0;j<92;j++)
queenPlaces[j][i]=0;
}
putQueen(0);
scanf("%d",&n);
for(i=0;i<n;i++)
{
int ith;
scanf("%d",&ith);
for(j=0;j<8;j++)
printf("%d",queenPlaces[ith-1][j]);
printf("\n");
}
return 0;
}
void putQueen(int ithQueen)
{
int i,k,r;
if(ithQueen==8)
{
count++;
return;
}
for(i=0;i<8;i++)
{
if(board[i][ithQueen]==-1)
{
board[i][ithQueen]=ithQueen;
for(k=count;k<92;k++)
queenPlaces[k][ithQueen]=i+1;
for(k=0;k<8;k++)
for(r=0;r<8;r++)
if(board[k][r]==-1&&(k==i||r==ithQueen||abs(k-i)==abs(r-ithQueen)))
board[k][r]=ithQueen;
putQueen(ithQueen+1);
for(k=0;k<8;k++)
for(r=0;r<8;r++)
if(board[k][r]==ithQueen)
board[k][r]=-1;
}
}
}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步