fork(1) download
  1.  
  2. #include <iostream>
  3. #include <vector>
  4.  
  5. using namespace std;
  6.  
  7. //This generates all nCr sequences
  8. void display(const std::vector<int> & v,
  9. std::vector<int>& comb,
  10. int offset, int k) {
  11. if (k == 0) {
  12. std::cout<<"{";
  13. for(auto &x:comb)
  14. std::cout<<x<<" ";
  15. std::cout<<"\b}"<<std::endl;
  16. return;
  17. }
  18. for (int i = offset; i <= v.size() - k; ++i) {
  19. comb.push_back(v[i]);
  20. display(v,comb,i+1, k-1);
  21. comb.pop_back();
  22. }
  23. }
  24.  
  25. int main() {
  26. int n = 4;
  27.  
  28. std::vector<int> v,comb;
  29. for (int i = 0; i < n; ++i)
  30. v.push_back(i+1);
  31.  
  32. for (int i = 1; i <= n; ++i)
  33. display(v,comb,0, i);
  34.  
  35. return 0;
  36. }
  37.  
  38.  
  39.  
  40.  
Success #stdin #stdout 0s 3476KB
stdin
Standard input is empty
stdout
{1 }
{2 }
{3 }
{4 }
{1 2 }
{1 3 }
{1 4 }
{2 3 }
{2 4 }
{3 4 }
{1 2 3 }
{1 2 4 }
{1 3 4 }
{2 3 4 }
{1 2 3 4 }