#include <stdio.h>
int line[20];
int j, t, n;
int is (int temp)
{
int ii;
for (ii = 0 ; ii < temp ; ii ++ ){
if(line[temp]==line[ii]
||line[temp]+temp-ii==line[ii]
||line[temp]-temp+ii==line[ii])
return 0;
}
return 1;
}
int queue (int i)
{
for(line[i]=0;line[i]<n;line[i]++){
if ( is (i) ){
if ( i + 1 < n )
queue( i + 1 );
else{
for( t = 0 ; t < n ; t ++ ){
printf("%d", line[t] + 1) ;
}
printf("\n") ;
}
}
}
return 0;
}
int main(void)
{
scanf("%d", &n); //输入皇后的阶数
queue(0);
system("pause");
return 0;
}
我的
int line[20];
int j, t, n;
int is (int temp)
{
int ii;
for (ii = 0 ; ii < temp ; ii ++ ){
if(line[temp]==line[ii]
||line[temp]+temp-ii==line[ii]
||line[temp]-temp+ii==line[ii])
return 0;
}
return 1;
}
int queue (int i)
{
for(line[i]=0;line[i]<n;line[i]++){
if ( is (i) ){
if ( i + 1 < n )
queue( i + 1 );
else{
for( t = 0 ; t < n ; t ++ ){
printf("%d", line[t] + 1) ;
}
printf("\n") ;
}
}
}
return 0;
}
int main(void)
{
scanf("%d", &n); //输入皇后的阶数
queue(0);
system("pause");
return 0;
}
我的