zoukankan      html  css  js  c++  java
  • 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

     题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

    解题思路: 一直遍历这个数组,每隔2个删除一个元素,直到只剩下一个元素 如果遇到了数组的结尾,那么就跳转到开头

    public class 第三十七题凡数到3退出 {
        public static void main(String[] args) {
            ArrayList<Integer> list = new ArrayList<Integer>();
            list.add(1);
            list.add(2);
            list.add(3);
            list.add(4);
            list.add(5);
            list.add(6);
            list.add(7);
            list.add(8);
            list.add(9);
            list.add(10);
            list.add(11);
            /*
             * 第二种思路 一直遍历这个数组,每隔2个删除一个元素,直到只剩下一个元素 如果遇到了数组的结尾,那么就跳转到开头
             */
            int i = 0;
            while (list.size() != 1) {
                // 如果到了末尾,则重新回到开头
                if (i + 1 >= list.size()) {
                    i = -1;
                } else if (i + 2 >= list.size()) {
                    i = -2;
                }
                // 删除元素
                i = i + 2;
                System.out.println("删除" + list.get(i) + "号");
                list.remove(i);
            }
            System.out.println("最后剩下的人是" + list.get(0) + "号");
        }
    }
  • 相关阅读:
    前端CSS部分简单整理
    前端HTML部分简单整理
    Top Android App使用的组件
    使用DialogFragment创建对话框总结
    Rails常用命令
    developer.android.com笔记
    Google Maps API v2 Demo Tutorial
    Android学习的一些问题
    Android学习过程
    Beginning Android 4 Programming Book学习
  • 原文地址:https://www.cnblogs.com/zjulanjian/p/10952537.html
Copyright © 2011-2022 走看看