从n个自然数中任取r个数的所有组合(递归算法)

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


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

【从n个自然数中任取r个数的所有组合(递归算法)】转载于:https://blog.51cto.com/phonezeng/1109173

    推荐阅读