fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <iomanip>
  4.  
  5. void print( const std::vector<bool>& seq )
  6. {
  7. for( bool b : seq ) std::cout << std::setw(5) << b << "; " ;
  8. std::cout << '\n' ;
  9. }
  10.  
  11. void generate( std::vector<bool>& seq, std::vector<bool>::iterator from )
  12. {
  13. if( from == seq.end() ) print(seq) ;
  14. else
  15. {
  16. *from = false ;
  17. generate( seq, from+1 ) ;
  18. *from = true ;
  19. generate( seq, from+1 ) ;
  20. }
  21. }
  22.  
  23. void generate( std::size_t n )
  24. {
  25. std::vector<bool> seq(n) ;
  26. generate( seq, seq.begin() ) ;
  27. }
  28.  
  29. int main()
  30. {
  31. std::cout << std::boolalpha ;
  32. generate(5) ; // 2^5 sequences
  33. }
  34.  
Success #stdin #stdout 0s 2984KB
stdin
Standard input is empty
stdout
false; false; false; false; false; 
false; false; false; false;  true; 
false; false; false;  true; false; 
false; false; false;  true;  true; 
false; false;  true; false; false; 
false; false;  true; false;  true; 
false; false;  true;  true; false; 
false; false;  true;  true;  true; 
false;  true; false; false; false; 
false;  true; false; false;  true; 
false;  true; false;  true; false; 
false;  true; false;  true;  true; 
false;  true;  true; false; false; 
false;  true;  true; false;  true; 
false;  true;  true;  true; false; 
false;  true;  true;  true;  true; 
 true; false; false; false; false; 
 true; false; false; false;  true; 
 true; false; false;  true; false; 
 true; false; false;  true;  true; 
 true; false;  true; false; false; 
 true; false;  true; false;  true; 
 true; false;  true;  true; false; 
 true; false;  true;  true;  true; 
 true;  true; false; false; false; 
 true;  true; false; false;  true; 
 true;  true; false;  true; false; 
 true;  true; false;  true;  true; 
 true;  true;  true; false; false; 
 true;  true;  true; false;  true; 
 true;  true;  true;  true; false; 
 true;  true;  true;  true;  true;