排列序数
next_permutation函数
-
next_permutation函数将按字母表顺序生成给定序列的下一个较大的排列,直到整个序列为降序为止。
-
prev_permutation函数与之相反,是生成给定序列的上一个较小的排列。
这是一个求一个排序的下一个排列的函数,可以遍历全排列,要包含头文件
具体用法参见:next_permutation函数用法举例 -
使用方法:
next_permutation(数组头地址,数组尾地址); 若下一个排列存在,则返回真,如果不存在则返回假 若求上一个排列,则用prev_permutation
代码
#include <bits/stdc++.h>
using namespace std;
int main() {
string num,temp;
int n=0;
int cnt=0;
cin>>num;
temp=num;
n=num.size();
sort(num.begin(),num.end());
while(next_permutation(num.begin(),num.end())){
cnt++;
if(num==temp) {
cout<<cnt; break;
}
}
return 0;
}