1294 全排列
题目描述 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
解题报告
此题可以使用STL中的next_permutation函数处理全排列。函数解释:
点击打开链接。代码如下:
std:cin,cout:
#include <iostream>
#include <algorithm>
int main () {
int myints[20],n,i;
std::cin>>n;
for(i=0;i<n;i++) myints[i]=i+1;
do {
for(i=0;i<n;i++)
{
if(i==0)
std::cout<<myints[i];
else
std::cout<<" "<<myints[i];
}
std::cout<<"\n";
} while ( std::next_permutation(myints,myints+n) );
return 0;
}
scanf,printf
#include <iostream>
#include <algorithm>
#include<cstdio>
using namespace std;
int main () {
int myints[20],n,i;
scanf("%d",&n);
for(i=0;i<n;i++) myints[i]=i+1;
do {
for(i=0;i<n;i++)
{
if(i==0)
printf("%d",myints[i]);
else
printf(" %d",myints[i]);
}
printf("\n");
} while ( next_permutation(myints,myints+n) );
return 0;
}