八皇后问题

大意:在一个8*8的棋盘上放八个皇后,要求他们不再同一行,不再同一列,不再同一个对角线上,总共有多少种不同的方案数。

代码:

#include 
#include 
#include 
using namespace std;

int col[10]= {0},sum=0;//col[i]=j表示第i行第j列放置皇后
int a[10][10]= {0};//存储图

void dfs(int row)
{
    if(row==9)
    {
        sum++;
        printf("case%d:\n",sum);
        for(int i=1; i<=8; i++)
        {
            for(int j=1; j<=8; j++)
                printf("%d",a[i][j]);
            printf("\n");
        }
        printf("\n");
        return;
    }
    for(int i=1; i<=8; i++)
    {
        bool flag=true;
        col[row]=i;
        a[row][i]=1;
        for(int j=1; j


你可能感兴趣的:(DFS)