Wie kann ich eine 4-Bit-Binärkombination unter Verwendung der Rekursion in C für 0,1 erzeugen?

Versuchen Sie für dieses Array Folgendes:

void rollover(int val,int count) {  
    if(count==0) {
        return;
    }
    printf("%d ",val);
    count--;
    rollover(val,count);    
}
int main() {
    int arr[]={0,1};
    for(int i=0;i<=1;i++) {
        rollover(arr[i],4);
    }
    printf("\n");
    return 0;
}

Erwartete Ausgabe unter Verwendung der Rekursionsmethode:

0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

Kann nicht verstehen, wie man diese Aufnahmefunktion schreibt. Ich habe mehrere Stunden damit verbracht, es zu lösen. Kann jemand helfen, diese Funktion zu schreiben?

Ich habe versucht, etwas wie G_G zu tun, das unten veröffentlicht wurde. Wie kann ich eine solche Rekursionsfunktion schreiben? Muss ich eine for-Schleife verwenden, um diese Rekursionsfunktion aufzurufen, oder zwei for-Schleifen mit Rekursion, oder sollte ich die Rekursionsfunktion zweimal aufrufen? Zum Beispiel:

void rollover(int val,int count) {  
    if(count==0) {
        return;
    }
    printf("%d ",val);
    count--;
    rollover(val,count);
    //.. do something if necessary ..
    rollover(val,count);
    //.. do something if necessary ..
}

Antworten auf die Frage(12)

Ihre Antwort auf die Frage