蓝桥杯练习系统—算法训练 s01串
第一部分:题目
问题描述
s01串初始为"0"
按以下方式变换
0变1,1变01
按以下方式变换
0变1,1变01
输入格式
1个整数(0~19)
输出格式
n次变换后s01串
样例输入
3
样例输出
101
数据规模和约定
0~19
第二部分:思路
循环+中间数组。有一点小小的技巧就是,0->1,1->01.就是都变成1,只不过原先是1的话在前面加一个0.
第三部分:代码
#include<iostream> #include<stdio.h> #include<string.h> using namespace std; char s[20000]; int slen; void changing() { char t[20000]; int len=0; for(int i=0;i<slen;i++) { if(s[i]=='1') { t[len++]='0'; } t[len++]='1'; } for(int i=0;i<len;i++) { s[i]=t[i]; } slen=len; } int main() { int n; s[0]='0'; slen=1; cin>>n; while(n--) { changing(); } cout<<s<<endl; return 0; }
害怕失败的人,已经是一个loser!