Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Напишите программу, которая выводит все последовательности длины N из 0 и 1 без 2-х единиц подряд.
- * Например, если N=3, то это 000, 001, 010, 100, 101.
- */
- #include <iostream>
- #include <Windows.h>
- using namespace std;
- void backTrack(int);
- int N;
- int* d;
- int main()
- {
- SetConsoleOutputCP(1251);
- SetConsoleCP(1251);
- int q;
- do
- {
- cout << "Введите длину последовательности(N):" << endl;
- cin >> N;
- d = new int[N];
- cout << "Полученные последовательности:" << endl;
- backTrack(0);
- delete[] d;
- cout << "Для выхода введите '0':" << endl;
- cin >> q;
- } while (q != 0);
- }
- void backTrack(int pos)
- {
- if (pos == N)
- {
- for (int i = 0; i < N; i++)
- cout << d[i];
- cout << "\n";
- return;
- }
- for (int i = 0; i < 2; i++)
- {
- if (pos > 0 && d[pos-1] == 1 && i == 1)
- return;
- else
- {
- d[pos] = i;
- backTrack(pos + 1);
- d[pos] = 0;
- }
- }
- }
Add Comment
Please, Sign In to add comment