问题描述 s01串初始为"0" 按以下方式变换 0变1,1变01 输入格式 1个整数(0~19) 输出格式 n次变换后s01串 样例输入 3 样例输出 101 数据规模和约定 0~19
记:
题目给出的信息带有误导性,让人看不出规律(1应该是"1"才对)
具体的要求是通过看测试数据的结果得到的(lll¬ω¬)
即:n的字符串 = (n-1的字符串) + (n-2的字符串)
AC代码:
1 #include <stdio.h> 2 #define MAX 10010 3 4 /*默认0为"0",1为"1"*/ 5 char ans[20][MAX] = {{"0"},{"1"},}; 6 void dg(int x) 7 { 8 if (x < 2) 9 { 10 return ; 11 } 12 dg(x-1); 13 /*当前s01串为前两个串的结合*/ 14 sprintf(ans[x],"%s%s",ans[x-2],ans[x-1]); 15 return ; 16 } 17 18 int main(void) 19 { 20 int n; 21 scanf("%d",&n); 22 dg(n); 23 printf("%s",ans[n]); 24 return 0; 25 }