#include <iostream>
#include <cstdio>
using namespace std;
int num,n,p[101];
void print(){
for (int j = num - 1; j >= 0; j--)
printf("%d\t",p[j]);
printf("\n");
}
void combine(int start, int* result, int m)
{
int i = 0;
for (i = start; i <= n + 1 - m; i++) ///从start开始
{
result[m - 1] = i;
if (m - 1 == 0)
print();
else
combine(i + 1, result, m - 1);
}
}
int main()
{
while(cin>>n>>num){
memset(p,0,sizeof(p));
combine(1, p, num);
}
}运行结果为:
本文介绍了一个使用C++实现的组合数列打印算法。该算法通过递归的方式生成所有可能的组合,并将它们打印出来。主要关注如何利用递归思想解决组合生成问题。
1403

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



