这是书本上的,我测试一下,没错
#include <iostream>
using namespace std;
int n;
int sum=0;
//数据互换
void swap(int * a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
//输出结果
void result(int a[])
{
sum++;
cout<<sum<<endl;
for(int i=0;i<n;i++)
{
cout<<a[i];
}
cout<<endl;
}
//实现全排列核心算法
void Perm (int a[],int n)
{
int i;
if(n==1)
{
result(a);
}
else
{
for(i=0;i<n;i++)
{
swap(a[i],a[n-1]);
Perm(a,n-1);
swap(a[i],a[n-1]);
}
}
}
//主函数
int main()
{
int a[101];
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
Perm(a,n);
return 0;
}