一本通上运行错误(题目链接)
#include<bits/stdc++.h>
#define int long long
using namespace std;
bool d[17],b[9],c[17];
int sum,a[9];
int print()
{
int i;
sum++;
cout<<"No. "<<sum<<endl;
for(i=1;i<=8;i++)
{
for(int j=1;j<=8;j++)
{
if(a[j]==i)
printf("1 ");
else
printf("0 ");
}
printf("\n");
}
cout<<endl;
}
int search(int i)
{
int j;
for(j=1;j<=8;j++)
if((!b[j])&&(!c[i+j])&&(!d[i-j+7]))
{
a[i]=j;
b[j]=1;
c[i+j]=1;
d[i-j+7]=1;
if(i==8)
print();
else
search(i+1);
b[j]=0;
c[i+j]=0;
d[i-j+7]=0;
}
}
signed main()
{
search(1);
return 0;
}