当前位置:   article > 正文

用递归实现1到n的从小到大排列(数字不重复)_1、给定数组a,其中有n个元素且按照字典序从小到大排列: a={1, 3, 5, 7} 使用递归

1、给定数组a,其中有n个元素且按照字典序从小到大排列: a={1, 3, 5, 7} 使用递归
  1. //1到n的排列
  2. //递归
  3. #include <iostream>
  4. using namespace std;
  5. void print_permutation(int* A,int n,int cur)
  6. {
  7. if (cur==n) //数组填满的话直接打印
  8. {
  9. for (int i=0;i<n;i++)
  10. cout<<A[i]<<",";
  11. cout<<"\n";
  12. }
  13. else
  14. {
  15. for (int i=1;i<=n;i++)
  16. {
  17. int ok=1;
  18. for (int j=0;j<cur;j++)
  19. if (A[j]==i) //判断某个数是否使用过避免重复
  20. {
  21. ok=0;
  22. }
  23. if (ok)
  24. {
  25. A[cur]=i;
  26. print_permutation(A,n,cur+1); //开始递归
  27. }
  28. }
  29. }
  30. }
  31. int main()
  32. {int n;
  33. int A[n];
  34. cout<<"请输入n的值"<<endl;
  35. cin>>n;
  36. print_permutation(A,n,0);
  37. return 0;
  38. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/924519
推荐阅读
相关标签
  

闽ICP备14008679号