# PBinfo #831 – Generare3 – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: Marc

## Enunț

Cerința
Se dă un număr natural n. Să se genereze, în ordine lexicografică, toate șirurile de cifre binare de lungime n.

Date de intrare
Programul citește de la tastatură numărul n

Date de ieșire
Programul va afișa pe ecran șirurile generate, câte unul pe o linie; între elementele unui șir nu sunt spații.

Restricții și precizări

1 ≤ n ≤ 10

Exemplu:
Intrare

3
Ieșire

000
001
010
011
100
101
110
111

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
class Generare3{
public:
  Generare3();
  void output();
private:
  void input();
  void outbin(int x);
  int m_val = 0;
  int m_n, m_lim;
};
void Generare3::outbin(int x) {
  for(int l = (m_lim >> 1); l > 0; l = (l >> 1)) {
    cout << (bool)(l & x);
  }
}
Generare3::Generare3() {
  input();
}
void Generare3::input() {
  cin >> m_n;
}
void Generare3::output() {
  m_lim = (1 << m_n);
  while(m_val < m_lim) {
    outbin(m_val);
    cout << '\n';
    m_val++;
  }
}
int main() {
  Generare3 obj;
  obj.output();
  return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/831)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/831/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-831/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
