多题目

(排列数)输入两个正整数n,m(1<n<20,1<m<n),在1~n中任取m个数,按字典序从小到大输出所有这样的排列。

例如:

输人:

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=l;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--)

(2)

for (j=data[i]+1;j<=n;j++)

if (!used[ j])

used[j]=true;

data[i]-[ ③ ];

flag-true;

break;

if(flag)

for(k=i+l;k<=m;k++)

for (j=1;j<=[ ④ ];j++)

if(!used[j])

data[k]=j;

used[j]=true;

break;

return 0i


第1题 单选

1处应填

A.

false

B.

ture

C.

1

D.

-1

第2题 单选

2处应填

A.

used[i]=true

B.

data[i]=i

C.

used[ data[i]]= true

D.

used[ data[i]]= false

第3题 单选

3处应填

A.

j

B.

i

C.

ture

D.

false

第4题 单选

4处应填

A.

n

B.

m

C.

i

D.

j

第5题 单选

5处应填

A.

return o

B.

exit

C.

continue

D.

break

发表评论

登录 后再回复