「CODEVS1294」全排列
题目描述 Description
给出一个n, 请输出n的所有全排列
输入描述 Input Description
读入仅一个整数n (1<=n<=10)
输出描述 Output Description
一共n!行,每行n个用空格隔开的数,表示n的一个全排列。并且按全排列的字典序输出。
样例输入 Sample Input
3
样例输出 Sample Output
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
数据范围及提示 Data Size & Hint
数据统计 Statistics
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#include<iostream> #include<cstdio> using namespace std; int n; int pd[11],used[11]; void print() { for(int i=1;i<=n;i++) printf("%d ",used[i]); printf("\n"); } void search(int k) { if(k==n){print();return;} for(int i=1;i<=n;i++) { if(!pd[i]){pd[i]=1;used[k+1]=i;search(k+1);pd[i]=0;} } } int main() { cin>>n; search(0); return 0; } |
Subscribe