#include <iostream>
void printArray(int arr[], int N) {
for (int i = 0; i < N; i++) {
std::cout << arr[i] << " ";
}
std::cout << "\n";
}
void generateAllBinaryOptions(int arr[], int N, int i) {
if (i == N) {
printArray(arr, N);
return;
}
arr[i] = 0;
generateAllBinaryOptions(arr, N, i + 1);
arr[i] = 1;
generateAllBinaryOptions(arr, N, i + 1);
}
int main()
{
int N = 4;
int arr[32];
generateAllBinaryOptions(arr, N, 0);
}
/*
run:
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
*/