Чтобы получить все возможные двоичные числа определенной длины в C++, можно использовать рекурсивную функцию. Вот пример кода, который демонстрирует эту идею:
#include <iostream> #include <vector> using namespace std; void generateBinaryNumbers(int n, vector<string>& result, string current = "") { // Базовый случай: если текущая строка уже имеет нужную длину n if (current.length() == n) { result.push_back(current); return; } // Рекурсивно вызываем функцию для случаев, когда в конце строки добавляем 0 или 1 generateBinaryNumbers(n, result, current + "0"); generateBinaryNumbers(n, result, current + "1"); } int main() { int n; cout << "Введите длину строк: "; cin >> n; vector<string> binaryNumbers; generateBinaryNumbers(n, binaryNumbers); cout << "Все возможные двоичные числа длины " << n << ":n"; for (const string& binaryNumber : binaryNumbers) { cout << binaryNumber << endl; } return 0; }
Давайте разберем этот код по частям:
1. Мы начинаем с объявления функции generateBinaryNumbers
, которая принимает три аргумента: n
(длина строки, которую мы хотим сгенерировать), result
(ссылка на вектор строк, куда будут добавлены все сгенерированные числа) и current
(строка, которая представляет текущее сгенерированное число).
2. Внутри функции есть базовый случай, когда длина текущей строки равна n
. В этом случае мы добавляем текущую строку в результаты и возвращаемся из функции.
3. Если текущая строка еще не достигла нужной длины, мы вызываем функцию рекурсивно дважды: с добавлением "0" в конец текущей строки и с добавлением "1" в конец текущей строки. Это гарантирует, что все возможные комбинации будут сгенерированы.
4. В main
функции мы читаем ввод пользователя - длину строк.
5. Затем мы объявляем вектор binaryNumbers
, который будет хранить все сгенерированные числа.
6. Мы вызываем generateBinaryNumbers
с введенной длиной строки и вектором binaryNumbers
, чтобы заполнить вектор всеми возможными двоичными числами.
7. Наконец, мы выводим все числа из вектора binaryNumbers
на экран.
Этот код дает следующий результат для ввода n = 3
:
Введите длину строк: 3 Все возможные двоичные числа длины 3: 000 001 010 011 100 101 110 111
Таким образом, код работает правильно и генерирует все возможные двоичные числа для указанной длины строки.