题目描述
在一个8*8棋盘上放置8个皇 后,且使得任意两个之间都不能互相“攻 击”,也就是使得任意两个都不在同一行 、同一列以及同一条斜线上,要求找出所有解。
(图片好难上传啊!!)
附上AC代码
#include <stdio.h>
int C[1000];
int tot,n;
void search(int cur);
int main()
{
while (scanf("%d",&n)!=EOF)
{
tot=0;
search(0);
printf("%d\n",tot);
}
return 0;
}
void search(int cur)
{
if(cur==n) tot++;
else for (int i=0;i<n;i++)
{
int ok=1;
C[cur]=i;
for (int j=0 ; j<cur ; j++)
{
if (C[cur]==C[j] || cur-C[cur] == j-C[j] || cur+C[cur]==j+C[j])
{
ok=0;
break;
}
}
if (ok)
{
search(cur+1);
}
}
}