http://poj.org/problem?id=1731
#include<iostream>
#include<algorithm>
#include<string.h>
#include<stdio.h>
using namespace std;
int main()
{
char a[210];
gets(a);
int l=strlen(a);
sort(a,a+l);
do
{
puts(a);
}
while(next_permutation(a,a+l));
}
也可以是数字
#include<iostream>
#include<string.h>
#include<stdio.h>
#include<algorithm>
using namespace std;
bool cmp(int a,int b)
{ return a>b; }
int main()
{
int a[3]={1,3,2};
int l=3;
sort(a,a+l);
do
{
for(int i=0;i<3;i++)
printf("%d ",a[i]);
printf("\n");
}
while(next_permutation(a,a+l));
/*
int a[3]={1,3,2};
int l=3;
sort(a,a+l,cmp);
do
{
for(int i=0;i<3;i++)
printf("%d ",a[i]);
printf("\n");
}
while(next_permutation(a,a+l,cmp));
*/
}