题目链接点这里
N皇后和八皇后是一样的 ,在小白书的123页,我今天也是刚学,做的第一个题,还是我看的书
代码如下
#include<stdio.h> #include<iostream> #include<string.h> using namespace std; int vis[3][23],p[15]; int n,sum; void dfs(int row) { if(row==n+1) { sum++; return; } for(int i=1;i<=n;i++) { if(vis[0][row-i+n]==0&&vis[1][i]==0&&vis[2][row+i]==0) { vis[0][row-i+n]=vis[1][i]=vis[2][row+i]=1; dfs(row+1);//深搜 vis[0][row-i+n]=vis[1][i]=vis[2][row+i]=0;//回溯 } } } int main() { for(n=1;n<=10;n++)//打个表不会超时 { memset(vis,0,sizeof(vis)); sum=0; dfs(1); p[n]=sum; } //freopen("input.txt","r",stdin); // freopen("output.txt","w",stdout); while(~scanf("%d",&n)&&n) { printf("%d\n",p[n]); } return 0; }