include [HTML_REMOVED]
include [HTML_REMOVED]
include [HTML_REMOVED]
using namespace std;
const int N = 10;
int n;
bool st[N];//判断当前位置有哪些数已经被使用,当数组某一位等于true时表示已经被使用
int path[N];//
int dfs(int a){
if(a==n){//该条路已经走到尽头
for(int i=0;i<n;i++)printf(“%d “,path[i]);
puts(“”);
}
if(a<n){//枚举判断当前位置可以填那些数
for(int i=1;i<=n;i++){//可填数字从一开始判断,根据bool数组判断
if(!st[i]){//i没有被用过时
path[a]=i;//path从第u位开始存储
st[i]=true;//在递归前声明i已经被使用
dfs(a+1);
st[i]=false;//递归结束后清理现场
}
}
}
}
int main(){
cin >> n;
dfs(0);//从初始位置开始,即没有数据
return 0;
}