• 蓝桥杯--猜字母 学到了!


      

    标题:猜字母

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

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

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

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

    这个题首先可以数学方法分析
    一列连续正整数无限去除奇数位,最后留下来的肯定是2的N次方中最大的那个,
    口算就是1024位 ,
    1024除以19取余是17,
    17位的字母就是q

    编程的话也可以,就是用一个StringBuffer把“abcdefghigklmnopqrs”存106次,然后删除

    这个有个比较有趣的地方是,由于delect方法的问题,每次删除掉第i个之后,i后面的都会整体前移一位,所以删除第i个其实是删除了所有奇数位的元素。

    public class Main {
        public static void main(String[] args) {
            StringBuffer base = new StringBuffer();
            for (int i = 0; i < 106; i++) {
                base.append("abcdefghigklmnopqrs");
            }
            while (base.length() > 1) {
                for (int i = 0; i < base.length(); i++)
                    base.deleteCharAt(i);
            }
            System.out.println(base);
        }
    }
  • 相关阅读:
    多线程
    异常
    接口
    多态
    对象和封装
    DIV+CSS命名规范集合
    MySql 最新官方安装教程-下载
    乐嘉性格色彩-4色特性,学习感悟
    Eclipse 的常用快捷方式
    学习方法_2011年编写和锻炼的思维题
  • 原文地址:https://www.cnblogs.com/upstart/p/6677265.html
Copyright © 2020-2023  润新知