Как я могу сгенерировать 4-битную двоичную комбинацию, используя рекурсию в C для 0,1?

Для этого массива попробуйте что-то вроде этого:

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;
}

Ожидаемый результат с использованием метода рекурсии:

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

Не могу понять, как написать эту функцию записи. Я потратил несколько часов, чтобы решить это. Может ли кто-нибудь помочь написать эту функцию?

Я пытался сделать что-то вроде G_G, опубликованное ниже. Как я могу написать такую функцию рекурсии? Должен ли я использовать один для цикла для вызова этой функции рекурсии или два для цикла с рекурсией или я должен вызывать функцию рекурсии дважды? Например:

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 ..
}

Ответы на вопрос(12)

Ваш ответ на вопрос