对于n,r,n>r,打印出c(n,r)
一般地,递归算法的两个步骤是:
(1)n个数中r个数组合递推到“n-1个数中r-1个的组合,n-2个数中r-1个的组合,……,直到r-1个数的r-1个的组合”,共n-r-1次递归。
(2)递归的停止条件是r=1
代码如下:
#include<iostream>
using namespace std;
int a[101];
void combi(int n,int r)
{
int i,j,k;
for(i=n;i>=r;i--)
{
a[r]=i;
if(r>1)
combi(i-1,r-1);
else
{
for(j=a[0];j>0;j--)
cout<<a[j]<<" ";
cout<<endl;
}
}
}
int main()
{
a[0]=3;
combi(5,3);
return 0;
}
转载于:https://blog.51cto.com/moqifei/721236