본문내용
main()
{
queens(0);
}
void queens(int i)
{
int j, k;
if(promising(i))
if(i == n - 1) {
for(k = 1; k < n; k++)
printf("%d ", col[k]);
printf("\n");
}
else
for(j = 1; j < n; j++) {
col[i + 1] = j;
queens(i + 1);
}
}
int promising(int i)
{
int k;
int switch1;
k = 1;
switch1 = 1;
while(k < i && switch1) {
if(col[i] == col[k] || abs(col[i] - col[k]) == i - k)
switch1 = 0;
k++;
}
return switch1;
}
{
queens(0);
}
void queens(int i)
{
int j, k;
if(promising(i))
if(i == n - 1) {
for(k = 1; k < n; k++)
printf("%d ", col[k]);
printf("\n");
}
else
for(j = 1; j < n; j++) {
col[i + 1] = j;
queens(i + 1);
}
}
int promising(int i)
{
int k;
int switch1;
k = 1;
switch1 = 1;
while(k < i && switch1) {
if(col[i] == col[k] || abs(col[i] - col[k]) == i - k)
switch1 = 0;
k++;
}
return switch1;
}