提交时间:2024-03-09 09:26:50

运行 ID: 136435

#include<iostream> #include<cstdio> using namespace std; bool flag[10]; int n,d[10]; void dfs(int k) { int i; if(k==n+1) { for(i=1;i<=n;i++) cout<<d[i]; cout<<endl; return; } for(i=1;i<=n;i++) if(flag[i]==false) { flag[i]=true; d[k]=i; dfs(k+1); flag[i]=false; } return; } int main() { int i; cin>>n; dfs(1); for(i=n-1;i>=2;i--) n=n*i; cout<<n; return 0; }