递归解决八皇后问题 #include
static char Queen[8][8];
static int a[8];
static int b[15];
static int c[15];
static int iQueenNum = 0; //记录总的棋盘状态数
void qu(int i); //参数代表行
int main()
{
int iLine,iColumn;
//棋盘初始化,空格为*,放置皇后的地方为@ for(iLine = 0; iLine
{
a[iLine] = 0; //列标记初始化,表示无列冲突 for(iColumn = 0; iColumn
for(iLine = 0; iLine
{
a[iLine] = 0;
for(iColumn = 0; iColumn
}
//主、从对角线标记初始化,表示没冲突 for(iLine = 0; iLine
b[iLine] = c[iLine] = 0; //列标记初始化,表示无列冲突
qu(0);
return 0;
}
void qu(int i)
{
int iColumn; for(iColumn = 0; iColumn
}
}
} Queen[i][iColumn] = '@'; a[iColumn] = 1; b[i-iColumn+7] = 1; c[i+iColumn] = 1; if(i
递归解决八皇后问题 #include
static char Queen[8][8];
static int a[8];
static int b[15];
static int c[15];
static int iQueenNum = 0; //记录总的棋盘状态数
void qu(int i); //参数代表行
int main()
{
int iLine,iColumn;
//棋盘初始化,空格为*,放置皇后的地方为@ for(iLine = 0; iLine
{
a[iLine] = 0; //列标记初始化,表示无列冲突 for(iColumn = 0; iColumn
for(iLine = 0; iLine
{
a[iLine] = 0;
for(iColumn = 0; iColumn
}
//主、从对角线标记初始化,表示没冲突 for(iLine = 0; iLine
b[iLine] = c[iLine] = 0; //列标记初始化,表示无列冲突
qu(0);
return 0;
}
void qu(int i)
{
int iColumn; for(iColumn = 0; iColumn
}
}
} Queen[i][iColumn] = '@'; a[iColumn] = 1; b[i-iColumn+7] = 1; c[i+iColumn] = 1; if(i