#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cmath>
int total=1;
int s[9];
void search(int top)
{
int i,j;
bool p;
if(top>8)
{
printf("步数%d;",total);
for(int t=1;t<=8;t++)
{
printf("%d",s[t]);
}
total++;
printf("\n");
}
else
{
for(i=1;i<=8;i++)
{
p=true;
if(top==1)
{
s[top]=i;
search(top+1);
}
if(top>1)
{
j=1;
while(j<top&&p==true)
{
if(s[j]==i||abs(s[j]-i)==abs(j-top))
p=false;
else
j++;
}
if(p==true)
{
s[top]=i;
search(top+1) ;
}
}
}
}
}
int main()
{
int top=1;
search(top);
return 0;
}
#include<iostream>
#include<algorithm>
#include<cmath>
int total=1;
int s[9];
void search(int top)
{
int i,j;
bool p;
if(top>8)
{
printf("步数%d;",total);
for(int t=1;t<=8;t++)
{
printf("%d",s[t]);
}
total++;
printf("\n");
}
else
{
for(i=1;i<=8;i++)
{
p=true;
if(top==1)
{
s[top]=i;
search(top+1);
}
if(top>1)
{
j=1;
while(j<top&&p==true)
{
if(s[j]==i||abs(s[j]-i)==abs(j-top))
p=false;
else
j++;
}
if(p==true)
{
s[top]=i;
search(top+1) ;
}
}
}
}
}
int main()
{
int top=1;
search(top);
return 0;
}