标题:猜字母
把abcd…s共19个字母组成的序列重复拼接106次,得到长度为2014的串。
接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。
得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。
答案: q
#include <bits/stdc++.h>
using namespace std;
vector<char> v;
int main()
{
int t=106;
while(t--){
for(int i=0;i<19;i++){
v.push_back('a'+i);
}
}
while(v.size()!=1){
vector<char> v1;
for(int i=1;i<v.size();i+=2){
v1.push_back(v[i]);
}
v=v1;
}
cout<<v[0];
return 0;
}
小测试用例
a b c d e f g h i j k l m n o p q r s
b d f h j l n p r
d h l p
h p
p