利用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; }