您的位置:首页 > 其它

2-4 数的排列

2016-05-12 19:44 211 查看
题目描述:输出从N个不同的正整数(限定次数)中取出M个数的排列。

#include <cstdio>

void R(int k);

int J[50];//记录数组。
int T[50];
int H[50];//标记数组,判断该数次数是否用尽。

int N, M;

int main() {
scanf("%d%d", &N, &M);
for(int a=1; a<=N; a++) {
scanf("%d%d", &J[a], &H[a]);
}
R(0);
return 0;
}

void R(int k) {
if(k == M) {
for(int a=0; a<M; a++) {
printf("%-3d", J[T[a]]);
}
printf("\n");
} else {
for(int a=1; a<=N; a++) {
if(H[a] != 0) {
T[k] = a;
H[a]--;
R(k+1);
H[a]++;
}
}
}
return;
}


p.s.:将不规律的数映射到规律的下标中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: