临近ACM大赛了,博主正在复习递归,毕竟博主是一个菜鸟,对递归总是有太多的疑问,所以搜罗了一些资料集中细谈一下用递归处理的排列组合问题
题目:用递归算法输出Cn m(从m中取n个数)的每一次的值;
代码如下:
#include <iostream>
using namespace std;
int N,M,n;//N,M为题中的N,M;n为控制第一个位置的数
int sz[100];//用来存储排列出的数值
void print()//输出个数
{
for(int i=1;i<=n;i++)
cout<<sz[i]<<" ";
cout<<endl;
}
void f(int i)//递归函数
{
n++;//第一位的值
for(;i<=M&&n<=N;i++)
{
sz[n]=i;
if(n==N)