Как я могу сгенерировать 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 ..
}