Java数组实现:一群个人围成一圈从123循环报数 每次报到3退出圈中 直到最后一个人留下!求其位置
发布时间
阅读量:
阅读量
题目:一群人围成一圈依次从1、2、3报数,若报到3则退出圈外,直至仅剩最后一个人。请问最终留下之人的初始位置是哪个?
此问题属于经典的约瑟夫环问题范畴。以下仅采用Java数组进行实现,之所以选择数组,是因为其逻辑相对直观且具有代表性。当然,也可以使用集合类(如ArrayList或LinkedList)来完成,但其核心思想与数组实现并无显著差异。
基于Java数组的实现思路为:首先动态构建一个包含1至n个数字的数组;随后设置两个计数变量,当计数至3时将当前数组元素置为-1,并将计数器重置为1;接着判断数组中不为-1的元素数量,当该数量等于1时,表明已找到目标数值;此时只需遍历整个数组,输出该唯一未被置为-1的元素所在的位置即可。
package com.dai.test1;
import java.util.Arrays;
public class Test3 {
public static void test(int n) {
//n是参与游戏的总人数
int[] persons = new int[n];
//创建1、2、3、4...n
for (int i = 1; i < persons.length; i++)
全部评论 (0)
还没有任何评论哟~
