作者:你永远不冫会懂我的心O_751 | 来源:互联网 | 2024-11-01 07:23
在使用群报数小程序进行高效接龙与统计时,可以通过创建`LinkedList`对象并利用`for`循环生成指定数量的`Person`对象,为每个人员分配唯一的编号,并将其添加到`LinkedList`集合中。这一过程确保了数据的有序性和高效管理,便于后续的接龙和统计操作。此外,该小程序还支持实时更新和查看参与人员的状态,进一步提升了活动组织的便利性和准确性。
返回本章节 返回作业目录 需求说明: 利用List实现报数游戏在控制台输入一个大于3的正整数,该整数表示有多少人,如在控制台输入10,表示有10个人,10个人围成一个圆圈,从序号1开始为这些人依次编号。第一个人从数字1开始报数,数到3的人则离开该圆圈,第4个人继续从1开始数,再次数到3的人同样离开,反复进行此操作,直到剩下最后一个人,在控制台输出剩下的最后一个人的编号。
实现思路: 创建Person类,在该类中定义String类型属性人员编号no,并创建该属性的getter和setter属性,重写toString()方法,该方法返回值为人员编号值。创建CalcResult类,在该类中定义静态方法calc()方法,该方法将获取最后一个留下的那一个人的人员编号。在calc()方法中,创建LinkedList对象,并通过for循环创建指定数量的Person对象,为人员的编号依次赋值,将这些Person对象保存至LinkedList集合中。在calc()方法中定义int类型计数器,在while循环中通过计数器判断当前位置是否已经数到3。将未数到3的Person对象从LinkedList集合中移除,并将该对象添加至LinkedList的尾部,对于数到3的Person对象,则将该对象从LinkedList集合中移除掉,直到LinkedList仅有一个元素时结束循环。
实现代码:
(代码没有按照题目来写,但是思路是一样的)
package com.test.List1;import java.util.ArrayList;import java.util.Scanner;public class test {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("数字:");int num = sc.nextInt();ArrayList list = new ArrayList();for (int i = 1; i <= num; i++) {list.add(i);}int index = 0;while (list.size()>1) {index++;if (index==3) {list.remove(0);index = 0;} else {list.add(list.remove(0));System.out.println(list);}}System.out.println(list.get(index));}}