算法训练 递归 s01串
问题描述
s01串初始为"0"
按以下方式变换
0变1,1变01
按以下方式变换
0变1,1变01
输入格式
1个整数(0~19)
输出格式
n次变换后s01串
样例输入
3
样例输出
101
数据规模和约定
0~19
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 5 int n; 6 int c = 0; 7 8 9 void fun(char *a) 10 { 11 int i; 12 char b[10000]; 13 memset(b, 0, sizeof(b)); 14 int k = 0; 15 16 for (i = 0; i < strlen(a); i++) //0->1 1->01 17 { 18 if (a[i] == '0') 19 b[k++] = '1'; 20 if (a[i] == '1') 21 { 22 b[k++] = '0'; 23 b[k++] = '1'; 24 } 25 } 26 27 c++; 28 if (c == n) 29 { 30 for (i = 0; i < k; i++) 31 { 32 printf("%c", b[i]); 33 } 34 return; 35 } 36 else 37 { 38 fun(b); 39 } 40 } 41 42 int main() 43 { 44 char a[10000] = { '0' }; 45 scanf("%d", &n); 46 if (n == 0) 47 { 48 printf("0"); 49 } 50 else 51 { 52 fun(a); 53 } 54 55 return 0; 56 }