#include <stdio.h>
static char Queen[8][8];
static int a[8]; //
static int b[15]; //
static int c[15]; //
static int iQueenNum = 0; //8
void qu(int i); // 8
void init(); //
int main()
{
init();
qu(0);
}
void init() {
for (int i = 0; i < 8; i++) {
a[i] = 0;
for (int j = 0; j < 8; j++) {
Queen[i][j] = '*';
}
}
for (int i=0; i<15; i++)
b[i] = c[i] = 0;
}
void output() {
for (int i=0; i<8; i++) {
for (int j=0; j<8; j++) {
printf("%c ", Queen[i][j]);
}
printf("
");
}
printf("-----%04d------
", iQueenNum++);
}
void qu (int iLin) {
int iCol = 0;
for (iCol = 0; iCol < 8; iCol++) {
if (a[iCol] == 0 && b[iCol-iLin+7] == 0 && c[iCol+iLin] == 0) {
a[iCol] = b[iCol-iLin+7] = c[iCol+iLin] = 1;
Queen[iLin][iCol] = '#';
if (iLin == 7) {
output();
}
else {
qu (iLin+1);
}
a[iCol] = b[iCol-iLin+7] = c[iCol+iLin] = 0;
Queen[iLin][iCol] = '*';
}
}
}