题目描述:
输入样例:
4
期望输出:
. Q . .
. . . Q
Q . . .
. . Q .. . Q .
Q . . .
. . . Q
. Q . .
代码实现:
#include<bits/stdc++.h> using namespace std;const int N =10;int n; int col[N],d1[N],d2[N]; char s[N][N];void dfs(int u) {if(u==n){for(int i=0;i<n;i++){for(int j=0;j<n;j++){cout<<s[i][j]<<' ';}cout<<endl;}cout<<endl;return ;}for(int i=0;i<n;i++){if(col[i]==0 && d1[u+i]==0&&d2[n-u+i]==0){s[u][i]='Q';col[i]=1,d1[u+i]=1,d2[n-u+i]=1;dfs(u+1);col[i]=0,d1[u+i]=0,d2[n-u+i]=0;s[u][i]='.';}} }int main() {cin>>n;for(int i=0;i<n;i++)for(int j=0;j<n;j++)s[i][j]='.';dfs(0); }