问题描述
s01串初始为”0”
按以下方式变换
0变1,1变01
输入格式
1个整数(0~19)
输出格式
n次变换后s01串
样例输入
3
样例输出
101
数据规模和约定
0~19
思路:
循环n次,将‘0’变为‘1’,将‘1’前加一个‘0’
#include <iostream>
#include<string>
using namespace std;
int main()
{
int n,i,j,k,l=1;
char s[20000];
cin>>n;
s[0]='0';
for(i=1;i<=n;i++)
{
for(k=0;k<l;k++)
{
if(s[k]=='0')//0变为1
s[k]='1';
else//在‘1’前加一个‘0’
{
l++;//字符串长度加一
for(j=l-2;j>=k;j--)//从该位置开始向后移动一位
{
s[j+1]=s[j];
}
s[k]='0';//在前面加一个‘0’
k++;//从下一个位置开始判断
}
}
}
for(i=0;i<l;i++)
cout<<s[i];
cout<<endl;
return 0;
}