#include<cstdio>
#include<iostream>
using namespace std;
int n,m,k;
int b[100001];
void print(){
for(int i=1;i<=m;i++)cout<<b[i]<<' ';
}
void combination(int k){
if(k==m+1){
print();
cout<<endl;
return;
}
for(int i=b[k-1]+1;i<=n;i++)
{
b[k]=i;
combination(k+1);
}
}
int main(){
cin>>n>>m;
combination(1);
return 0;
}
本文介绍了一个使用C++实现的组合打印算法,通过递归函数实现从1到n中选取m个数的所有组合,并将这些组合打印出来。算法采用深度优先搜索策略,每次选择一个数加入当前组合,直到组合长度达到设定的m值。
2802

被折叠的 条评论
为什么被折叠?



