N皇后问题:

#include<stdio.h>
#include<math.h>
int queen[8];
int n,num=0;
void pl(int k)
{
    int i,j;
    if(k==8)
    {
        num++;
        if(num==n)
        {
        for(i=0;i<8;i++)
        printf("%d",queen[i]);
        printf("\n");
        }
    }
    for(i=1;i<=8;i++)
    {
        for(j=0;j<k;j++)
        {
            if(queen[j]==iabs(queen[j]-i)==abs(k-j)/行之差等于列之差/)break;
        }
        if(j==k)
        {
            queen[k]=i;
            pl(k+1);
        }
    }
}
int main()
{
    scanf("%d",&n);
    pl(0);
    return 0;
}

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

搜索DFS&BFS Previous
set容器的一些用法 Next