编写Java程序,利用List实现报数游戏的实现思路

返回本章节

返回作业目录


需求说明:

  • 利用List实现报数游戏
  • 在控制台输入一个大于3的正整数,该整数表示有多少人,如在控制台输入10,表示有10个人,10个人围成一个圆圈,从序号1开始为这些人依次编号。
  • 第一个人从数字1开始报数,数到3的人则离开该圆圈,第4个人继续从1开始数,再次数到3的人同样离开,反复进行此操作,直到剩下最后一个人,在控制台输出剩下的最后一个人的编号。

实现思路:

  1. 创建Person类,在该类中定义String类型属性人员编号no,并创建该属性的getter和setter属性,重写toString()方法,该方法返回值为人员编号值。
  2. 创建CalcResult类,在该类中定义静态方法calc()方法,该方法将获取最后一个留下的那一个人的人员编号。
  3. 在calc()方法中,创建LinkedList对象,并通过for循环创建指定数量的Person对象,为人员的编号依次赋值,将这些Person对象保存至LinkedList集合中。
  4. 在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));
		
	}

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章