题目描述
01串初始为"0"
按以下方式变换
0变1,1变01
输入
1个整数(0~19)
输出
n次变换后的01串
样例输入
3
样例输出
101
解析:利用两个数组a[],b[],来分别存储变化前和变化后的字符串,然后交替替换。
#include <stdio.h>
#include <string.h>
char a[10005],b[10005];
int main()
{
int n,i,cnt,s,cnt2,m=0;
while(~scanf("%d",&n)){
a[0]='0'; //初始为"0"
m=0;
for(i=0;i<n;i++){
m=0; //m记录b数组的下标
cnt=strlen(a);
for(s=0;s<cnt;s++){
if(a[s]=='0') b[m]='1',m++; //0变成1
if(a[s]=='1') b[m]='0',m++,b[m]='1',m++; //1变成0 1
}
for(s=0;s<cnt;s++) a[s]='\0'; //清空a数组
strcpy(a,b);
cnt2=strlen(b);
for(s=0;s<cnt2;s++) b[s]='\0'; //清空b数组
}
printf("%s\n",a);
cnt=strlen(a);
for(s=0;s<cnt;s++) a[s]='\0'; //清空a数组
}
return 0;
}