八皇后结果出错,调试了半天了,(C语言<stdio.h>,用的是最简单的dfs)
#include <stdio.h>
int ans,a[9];
bool check(int n)
{
for(int i=1;i<n;i++)
{
if(a[n]==a[i]||a[n]+n==a[i]+i||a[n]-n==a[i]-i)
{
return 0;
}
return 1;
}
}
void dfs(int n)
{
if(n==9)
{
ans++;
}
else
{
for(int i=1;i<=8;i++)
{
a[n]=i;
if(check(n)==1)
{
dfs(n+1);
}
}
}
}
int main()
{
dfs(1);
printf("%d",ans);
return 0;
}
万分感谢