这个函数是从当前的全排列开始,而不是重新排列,比如现在是12354,下一个就是12435;
using namespace std;
int main(){
int n,m;
cin>>n>>m;
int ord[n+1];
for(int i=1;i<=n;++i) cin>>ord[i];
for(int i=1;i<=m;++i) next_permutation(ord+1,ord+1+n);
for(int i=1;i<n;++i) cout<<ord[i]<<' ';
cout<<ord[n];
}
如果是全排列过程中操作
do{
for (int i = 1; i <= 7; i++)
{
for (int j = i + 1; j <= 8; j++)
{
int a = cal(1, i);
int b = cal(i + 1, j);
int c = cal(j + 1, 9);
if (a * c + b == c * n)
ans++;
}
}
} while (next_permutation(g + 1, g + 1 + 9));