zoukankan      html  css  js  c++  java
  • 蓝桥杯--猜字母 学到了!

      

    标题:猜字母

    把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);
        }
    }
  • 相关阅读:
    .Net中获取打印机的相关信息
    如何在windows server 2008上配置NLB群集
    jvm分析内存泄露
    JVM调优
    线程池工作队列饱和策略
    线程池的处理流程:
    Java的Executor框架和线程池实现原理(转)
    线程池实现原理详解:
    futer.get()(如果任务没执行完将等待)
    sql注入
  • 原文地址:https://www.cnblogs.com/upstart/p/6677265.html
Copyright © 2011-2022 走看看