蓝桥杯/第五届/猜字母

【问题描述】

    把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

 

posted @ 2015-03-25 18:06  #码农#  阅读(319)  评论(0编辑  收藏  举报