对于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;

 

}