博客
关于我
50个人围成一圈数到3和3的倍数时出圈,问剩下的人是谁?在原来的位置是多少(简单易懂)
阅读量:379 次
发布时间:2019-03-05

本文共 1162 字,大约阅读时间需要 3 分钟。

CycleTest

private static int cycle(int total, int k) {    LinkedList
dataList = new LinkedList<>(); for (int i = 0; i < total; i++) { dataList.add(new Integer(i + 1)); } int index = -1; // 初始化为-1,表示下一个要删除的元素 while (dataList.size() > 1) { index = (index + k) % dataList.size(); index--; // 删除当前元素后,下一个元素的下标会减1 dataList.remove(index); System.out.println("该数字原来的位置是:" + dataList.get(0)); } return dataList.get(0).intValue();}

上述代码实现了一个循环测试的逻辑,适用于验证多个元素的循环性能。以下是代码的主要实现原理和注意事项:

  • 初始化和数据准备

    代码首先创建了一个LinkedList对象dataList,用于存储需要循环的数据。通过循环从0到total的值,将这些数字依次添加到dataList中。

  • 循环删除元素

    初始化时,index的值设为-1,表示下一个需要删除的元素的位置。进入while循环,确保dataList的大小大于1,继续删除元素。每次循环执行以下操作:

    • 计算当前要删除的元素的位置index,使用取余运算确保位置在当前dataList的范围内。
    • index减1,模拟删除一个元素后,下一个元素的位置需要调整。
    • 调用remove方法删除dataList中当前位置的元素。
    • 打印当前dataList的首位元素的位置信息。
  • 循环终止条件

    dataList的大小小于等于1时,循环终止。通常这种情况下,dataList只剩下一个元素,cycle方法返回该元素的值。

  • 下标调整逻辑

    为了避免下标越界问题,代码使用了取余运算来计算当前要删除的位置。每次删除后,index减1,确保下一个元素的位置能够正确调整。这种方法特别适用于循环队列或环形数据结构。

  • 示例测试

    total设置为5时,代码会依次删除位置为3、6、9、12、15的元素(依据取余计算)。删除完所有元素后,dataList中只剩下一个元素,其位置信息会被打印出来。

  • 通过上述代码和逻辑,可以实现一个简单但有效的循环测试功能。代码清晰易懂,适合用于验证多个元素的循环性能或其他需要循环处理的场景。

    转载地址:http://bjqwz.baihongyu.com/

    你可能感兴趣的文章
    冒泡排序又来啦(C/C++版本)
    查看>>
    python负数存储
    查看>>
    求二维数组中最大值的位置
    查看>>
    python中sort和sorted的区别
    查看>>
    maven安装
    查看>>
    合并两个有序数组
    查看>>
    Ubuntu 环境下使用中文输入法
    查看>>
    聊聊我的五一小假期
    查看>>
    面向对象之异常处理:多路捕获
    查看>>
    Python简易五子棋
    查看>>
    MySQL8.0.19 JDBC下载与使用
    查看>>
    Vue新建项目——页面初始化
    查看>>
    Cent OS 7.6 服务器软件安装(这篇博客主要是为了方便我配置云主机的)
    查看>>
    Node.js包使用系列(一)——修改NPM全局下载和缓存路径
    查看>>
    TDengine使用(一)——TDengine下载与安装
    查看>>
    CSS position属性static/relative/absolute/fixed/sticky用法总结
    查看>>
    6.14编一个程序,将两个字符串s1和s2比较,不要用strcmp函数。
    查看>>
    Java纯文本文件显示工具制作
    查看>>
    Unity2D Fixed Joint 2D详解
    查看>>
    六、Numpy的使用(详解)
    查看>>