0LCH0 @ 2024-01-20 09:38:09
#include<bits/stdc++.h>
using namespace std;
int a[101],b[101],c[101],d[101];
int ans;
int n;
int print()
{
if(ans<=2)
{
for(int k=1;k<=n;k++)
cout<<a[k]<<" ";
cout<<endl;
}
ans++;
}
void queen(int i)
{
if(i>n)
{
print();
return;
}
else
{
for(int j=1;j<=n;j++)
{
if((!b[j])&&(!c[i+j])&&(!d[i-j+n]))
{
a[i]=j;
b[j]=1;
c[i+j]=1;
d[i-j+n]=1;
queen(i+1);
b[j]=0;
c[i+j]=0;
d[i-j+n]=0;
}
}
}
}
int main()
{
cin>>n;
queen(1);
cout<<ans;
return 0;
}
by M1saka16I72 @ 2024-01-20 09:49:57
@0LCH0 你的int print()
没有返回值
by Y_QWQ_Y @ 2024-01-20 09:50:54
@0LCH0 你 print 函数是 int
的,但是没有返回值,把 print 函数改成 void
就可以了
by 0LCH0 @ 2024-01-20 09:52:12
@Misaka16172 @Y_QWQ_Y 谢谢,AC了