Hej, miałam napisać program, który generuje wszelkie wariacje z powórzeniami liczb 0 i 1 o długości n.
N pobieramy od użytkownika.
Mam coś takiego:
#include <iostream>
using namespace std;
#define MAX_LENGTH 32
int number[MAX_LENGTH];
void f(int n, int length) {
if (n > 0) {
number[4 - n] = 0;
f(n - 1, length);
number[4 - n] = 1;
f(n - 1, length);
}
else {
for (int i = 0; i < length; i++) {
printf("%u", number[i]);
}
printf("\n");
}
}
int main() {
f(4, 3);
f(4, 4);
f(4, 5);
return 0;
}
Działa dla 4 - wypisuje ok.
Ale dla 3 wypisuje po 2 razy, a dla 5 - nie wypisuje wszystkiego, jak to naprawić?