在58做网站推广有效果吗/seo导航
打印排列(一)描述给定一个正整数n, 按照递增顺序打印数字1到n的所有排列.输入格式一个整数n(1<=n<=7).
输出格式按照递增的顺序输出n的所有排列, 详见样例.
输入样例3
输出样例1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
#include<iostream>
using namespace std;
int num[10];
int vis[10];
int n;
void dfs(int x)//x位置
{if(x==n+1){int i;for(i=1;i<n;++i)cout<<num[i]<<" ";cout<<num[i]<<endl;return ;}for(int i=1;i<=n;++i){if(!vis[i]){vis[i]=1;num[x]=i;dfs(x+1);vis[i]=0;}}
}
int main()
{while(scanf("%d",&n)!=EOF){dfs(1);}return 0;
}