输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字。
输入格式
n(1≤n≤9)
输出格式
由1~n组成的所有不重复的数字序列,每行一个序列。每个数字保留5个场宽
dfs板子题
//给有一个整数n,1~n个数全排列 #include <iostream> #include <cstdio> using namespace std; bool vis[100]; int a[100]; int n; void dfs(int x) { if (x == n+1) { for (int i = 1;i <= n;i++) { printf ("%5d",a[i]); } cout<<endl; return; } for (int i = 1;i <= n;i++) { if (vis[i]==0) { vis[i] = 1; a[x] = i; dfs(x+1); vis[i] = 0; } } } int main() { scanf ("%d",&n); dfs(1); return 0; }