編寫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));
		
	}

}

 

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