蓝桥杯/第五届/猜字母
【问题描述】
把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。
接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。
得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。
答案是一个小写字母。
【问题分析】
每次将字符串中的奇数位字母删除,可以转换为每次提取偶数位字母连接生成新字符串,下次再对这个字符串做同样的操作,直到新字符串的长度为1。
【程序代码】
1 public class 蓝桥杯_第五届_猜字母 2 { 3 public static void main(String[] args) { 4 // TODO Auto-generated method stub 5 String str=""; 6 for(int i=0;i<106;i++) 7 str+="abcdefjhijklmnopqrs"; 8 while(str.length()>1) 9 { 10 String tmp=""; 11 for(int i=1;i<str.length();i+=2) 12 { 13 tmp+=str.charAt(i); 14 } 15 str=tmp; 16 } 17 System.out.println(str); 18 } 19 }
【运行结果】
q