hanzuorui @ 2023-07-29 10:29:12
#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;
}
by MTF_Lambda_04 @ 2023-07-29 10:42:29
@hanzuorui <<前三行为前三个解,每个解的两个数字之间用一个空格隔开。第四行只有一个数字,表示解的总数。>>
by HRcohc @ 2023-07-30 16:43:38
这题皇后数量没定,不一定是8