生成1~n的排列

xiaoxiao2021-02-28  40

先生成以1开头的排列,再是2,最后到;

#include <iostream> using namespace std; int a[100]; void print_per(int n,int a[],int cur) { if(cur==n) { for(int i=0;i<n;i++)cout<<a[i]; cout<<endl; } else { for(int i=1;i<=n;i++)在a[cur]填上个种整数i; { int ok=1; for(int j=0;j<cur;j++) //如果i在前面已经出现过,则i不能放在该位置 if(a[j]==i)ok=0; if(ok) { a[cur]=i; print_per(n, a,cur+1); } } } } int main() { int n; while(cin>>n) { print_per(n,a,0); } return 0; }

转载请注明原文地址: https://www.6miu.com/read-79738.html

最新回复(0)