一个渣渣的再次分享:

标题:猜字母

把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。

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

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

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

import java.util.ArrayList;

public class 猜字母 {
    public static void main(String[] args) {
         StringBuffer sb = new StringBuffer();//比String多了一些好用的 方法
         for(int i=0;i<106;i++) {//先造题目,生成拼接的106次
             sb.append("abcdefghijklmnopqrs");//虽然是拼接的但是,每一个字母都有属于字的下标
         }
         //System.out.println(sb.deleteCharAt(0));
         while(sb.length()>1) {//就剩一个停止
             for(int i=0;i<sb.length();i++) {//每次删除一个sb长度就会减少一个,然后i++,其实删除的恰好就是奇数
                 sb.deleteCharAt(i);//删除第i个元素
             }
         }
         System.out.println(sb);
    }
}

一渣一总结:

  1、利用StringBuilder特性造题目

  2、每次删除一个正好减的奇数的有趣现象(因为i++)