题目
s01串初始为" 0"
按以下方式变换
0变1,1变01
输入
1个整数(0~19)
数据规模和约定
0~19
输出
n次变换后s01串
样例输入
3
样例输出
101
解题思路
按照变化的次数循环,每一次循环中,遍历上一次留下的字符串,遇到‘0’转为‘1’,遇到‘1’转为‘01’,最后输出即可。
易错点
字符串数组要设置的长一些,否则会出现运行错误。
代码
#include<stdio.h>
#include<string.h>
int main()
{
char a[20000],b[20000];
a[0] = '0';
a[1] = '\0';
int n,i,j,k = 0;
scanf("%d",&n);
for (i=0;i<n;i++)
{
k = 0;
for (j=0;j<strlen(a);j++)
{
if (a[j]=='0')
b[k++] = '1';
else
{
b[k++] = '0';
b[k++] = '1';
}
}
b[k] = '\0';
for (j=0;j<=k;j++)
a[j] = b[j];
}
printf("%s",a);
return 0;
}