2014年蓝桥杯省赛猜字母(C++的STL,string实现)
/*把 abcd...sabcd...s 共19个字母组成的序列重复拼接 106 次,得到长度为 2014的串。
接下来删除第 1个字母(即开头的字母 aa),以及第 3 个,第 5 个等所有奇数位置的字母。
得到的新串再进行删除奇数位置字母的动作。如此下去(暗示循环),最后只剩下一个字母(退出循环的条件),请输出该字母。*/
#include<bits/stdc++.h>
using namespace std;
string s;
int main(){
s="abcdefghijklmnopqrs";
string temp;
temp=s;
for(int i=1;i<=105;i++){
s+=temp;
}
while(s.size()>1){//长度不等于1继续循环
for(int i=0;i<=(int)s.size()-1;i++){//i++不是i+2:比如当0位置元素被删除后,原本1位置元素来到0位置,二位置元素来到1位置
//所以要删除原来的二位置是i++不是i+=2
s.erase(i,1);//从位置i开始删删除1个元素
}
}
cout<<s<<endl;
}