编写一个递归算法,找出从自然数1,2,3,。。。,n中任取r个数的所有组合.

递归算法代码如下:

 
  1. #include<iostream> 
  2. using namespace std; 
  3. int sum[100]; 
  4. void function(int m,int k) 
  5.     int i,j; 
  6.     for(i=m;i>=k;i--) 
  7.     { 
  8.         a[k]=i; 
  9.         if(k>1) 
  10.             function(i-1,k-1); 
  11.         else 
  12.         { 
  13.             for(j=a[0];j>0;j--) 
  14.                 cout<<a[j]<<"\t"
  15.             cout<<endl; 
  16.         } 
  17.     } 
  18.   
  19.   
  20. int main() 
  21.     int n,r; 
  22.     cout<<"请输入n和r的值:"<<endl; 
  23.     cin>>n>>r; 
  24.     if(r>n) 
  25.         cout<<"输入n和r的值错误!"<<endl; 
  26.     else 
  27.     { 
  28.         a[0]=r; 
  29.         function(n,r); 
  30.     } 
  31.     return 0; 
  32.