概述
题目描述:输出从前N个正整数中取出M个数(不可重复)的排列。
#include <cstdio>
#include <cstring>
void R(int k);
int T[50];
int H[50];//标记数组,判断该数是否已被用过。
int N, M;
int main() {
memset(H, 0, sizeof(H));
scanf("%d%d", &N, &M);
R(0);
return 0;
}
void R(int k) {
if(k == M) {
for(int a=0; a<M; a++) {
printf("%-3d", T[a]);
}
printf("n");
} else {
for(int a=1; a<=N; a++) {
if(H[a] == 0) {
T[k] = a;
H[a] = 1;
R(k+1);
H[a] = 0;
}
}
}
return;
}
p.s.:memset是在cstring的一个函数,在这里的作用是把H数组全部赋初值false。传送门
最后
以上就是优雅酒窝为你收集整理的2-2 无重复排列的全部内容,希望文章能够帮你解决2-2 无重复排列所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复