Перебор 0 и 1 в си? Надо перебрать все возможные комбинации 0 и 1, например вводим число 2, на выходе получаем 0 0, 0 1, 1 0, 1 1 и так для любого числа
Вот пример программы на языке C, которая перебирает все возможные комбинации 0 и 1 для заданного количества битов:
#include <stdio.h> #define MAX_BITS 32 void generateBinary(int n, int arr[], int index) { if (index == n) { for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } printf("\n"); return; } arr[index] = 0; generateBinary(n, arr, index + 1); arr[index] = 1; generateBinary(n, arr, index + 1); } int main() { int n; printf("Введите количество битов: "); scanf("%d", &n); if (n < 1 || n > MAX_BITS) { printf("Некорректное количество битов.\n"); return 1; } int arr[MAX_BITS]; generateBinary(n, arr, 0); return 0; }
Пример работы программы:
Введите количество битов: 2 0 0 0 1 1 0 1 1
Программа умеет работать с битами в пределах от 1 до 32, так как используется целочисленный массив фиксированного размера для хранения текущей комбинации.
Вот пример программы на языке C, которая перебирает все возможные комбинации 0 и 1 для заданного количества битов:
#include <stdio.h>#define MAX_BITS 32
void generateBinary(int n, int arr[], int index) {
if (index == n) {
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return;
}
arr[index] = 0;
generateBinary(n, arr, index + 1);
arr[index] = 1;
generateBinary(n, arr, index + 1);
}
int main() {
int n;
printf("Введите количество битов: ");
scanf("%d", &n);
if (n < 1 || n > MAX_BITS) {
printf("Некорректное количество битов.\n");
return 1;
}
int arr[MAX_BITS];
generateBinary(n, arr, 0);
return 0;
}
Пример работы программы:
Введите количество битов: 20 0
0 1
1 0
1 1
Программа умеет работать с битами в пределах от 1 до 32, так как используется целочисленный массив фиксированного размера для хранения текущей комбинации.