@[doujiamu](/user/947142)
```cpp
#include<bits/stdc++.h>
using namespace std;
int n;
int a[15];
int ans;
int cnt;
void print()
{
if(cnt==3)
{
ans++;
return ;
}
for(int i=1;i<=n;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
cnt++;
ans++;
}
bool check(int x,int y)
{
for(int i=1;i<y;i++)
{
if(x==a[i]||x-a[i]==i-y||x-a[i]==y-i)
{
return false;
}
}
return true;
}
void dfs(int l)
{
if(l==n+1)
{
print();
return ;
}
else
{
for(int i=1;i<=n;i++)
{
if(check(i,l))
{
a[l]=i;
dfs(l+1);
}
}
}
}
signed main()
{
cin>>n;
dfs(1);
cout<<ans<<endl;
return 0;
}
```
by czy20080428 @ 2024-04-04 10:08:39
@[czy20080428](/user/1217367)
看懂了,谢谢大哥
不过我还是不明白我的问题出在哪
by doujiamu @ 2024-04-04 11:06:38