完善程序 (排列数) 输入两个正整数 ,在 中任取 个数,按字典序从小到大输出所有这样的排列。 例如: 输入:3 2 输出:1 2 1 3 2 1 2 3 3 1 3 2
#include <iostream>#include <cstring>using namespace std;const int SIZE =25;bool used[SIZE];int data[SIZE];int n,m,i,j,k;bool flag;int main(){ cin>>n>>m; memset(used,false,sizeof(used)); for(i=1;i<=m;i++) { data[i]=i; used[i]=true; } flag=true; while(flag) { for(i=1;i<=m-1;i++) cout<<data[i]<<" "; cout<<data[m]<<endl; flag= [ ① ] ; for(i=m;i>=1;i--) { [ ② ]; for(j=data[i]+1;j<=n;j++) if(!used[j]) { used[j]=true; data[i]=[ ③ ] ; flag=true; break; } if(flag) { for(k=i+1;k<=m;k++) for(j=1;j<= [ ④ ];j++) if(!used[j]) { data[k]=j; used[j]=true; break; } [ ⑤ ]; } } } return 0;}①处应填( )
②处应填( )
③处应填( )
④处应填( )
⑤处应填( )