利用next_permutation()实现全排列 完成 阮小二买彩票
全排列问题可以使用 头文件<algorithm> 中的 next_permutation(a.start,a.end)函数。
但是需要注意这个函数在使用前需要先对 数组做升序排列( 可以使用<algorithm>中的sort(a.start,a.end) )否则只会输出比该序列大的序列。
如果有更大的数 next_permutation()会返回true,否则返回false。
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
int main(int argc, char *argv[]) {
char arr[6];
scanf("%s",arr);
int len = strlen(arr);
sort(arr,arr+len);
do{
printf("%s\n",arr);
}while(next_permutation(arr,arr+len));
return 0;
}

浙公网安备 33010602011771号