#include
#define MAXN 100
int a[MAXN];
int f(int m, int k)
{
int i,j;
for(i = m; i >= k; i--)
{
a[k] = i;
if(k > 1)
f(i-1, k-1);
else {
for(j = a[0]; j > 0; j--)
printf("%d", a[j]);
printf("\n");
}
}
return 0;
}
int main()
{
int n,r;
scanf("%d%d",&n,&r);
a[0] = r;
f(n,r);
}
转载于:https://www.cnblogs.com/NYNU-ACM/p/4236837.html
本文深入探讨了C语言中递归算法的应用,通过具体示例代码详细解释了递归函数的工作原理及其在解决组合数学问题上的应用。文章提供了一个递归函数f,该函数接受两个参数m和k,用于生成所有可能的组合数。代码展示了如何使用数组存储中间结果,并通过递归调用自身来遍历所有可能的组合。
3563

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



