思路
递归
Code
#include <bits/stdc++.h> using namespace std; const int N = 20; bool st[N]; void dfs(int u,string s){ if(u==8) { for(int i=0;i<8;i++) cout<<s[i]<<" \n"[i==7]; } if(u>=8) return; for(int i=1;i<=8;i++){ if(!st[i]){ st[i]=true; string ss=s; ss+=i+'0'; dfs(u+1,ss); st[i]=false; } } } int main(){ dfs(0,""); return 0; }