直接思路吧。。。
定义一个递归函数Queue(int row),参数代表当前需要摆放皇后的行(假设当前行row之前的每一行都已经摆放好一个皇后)。
利用递归思想,若当前行row<8,则说明棋盘还没有摆放完,则在当前行逐个试探摆放皇后,若可以摆放,则递归调用Queue(row+1)继续摆放;若row==8,说明摆放完,输出棋盘(递归的边界条件)。
代码
#include<iostream>
//#include<stdio.h>
#include<cmath>
using namespace std;
const int N=100;
int chess[N][N]={
0};
int nQueue=8;
int total=0;
int check_queue(int r,int l)
{
//check l
for(int i=0;i<r