您的位置:首页 > 其它

蓝桥杯 历届试题 猜字母

2017-02-16 20:57 148 查看
把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。

接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。

得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。


答案是一个小写字母,请通过浏览器提交答案。不要填写任何多余的内容。

思路:

 删除奇数,我们就取偶数的字母,只是要注意会下标和个数不同,下标为0时是第一个,我们要取偶数就要取下标%2==1的字母

直至字符串长度为1停止

代码:

#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
char a[2020],s[20]="abcdefghijklmnopqrs";
int i,len,k=0;
for (i=0;i<106;i++)
strcat(a,s);
while (k!=1)
{
k=0;
for (i=0;a[i];i++)
{
if (i%2==1)//删除奇数,则要取奇数下标的数
a[k++]=a[i];
}
a[k]='\0';
}
cout<<a;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: