美文网首页
50成环报数,到3就出局,剩下最后那个编号是多少

50成环报数,到3就出局,剩下最后那个编号是多少

作者: idioitcbear | 来源:发表于2017-06-10 11:05 被阅读109次
  package com.robert;

import java.util.LinkedList;
import java.util.List;
/**
 * 有50个人,123报数,报到3出列,最后一个人的编号是多少
 * @author robert
 *
 */
public class Main2 {
    public static void main(String[] args) {

        int lastOne = getLastOne(50);
        System.out.println("剩余最后一个为:" + lastOne);
    }

    private static int getLastOne(int n) {
        List<Integer> result = new LinkedList<>();
        for (int i = 0; i < n; i++) {
            result.add(i + 1);
        }
        int a = 0; // 控制三次出去一个
        while (result.size() > 1) {
            for (int i = 0; i < result.size(); i++) {
                a++;
                if (a % 3 == 0) {
                    result.remove(i);
                    a = 0; // 重新开始计数
                    i--;
                    printArray(result);
                }
            }
        }
        return result.get(0);
    }

    public static void printArray(List<Integer> array) {
        for (int j = 0; j < array.size(); j++) {
            if (j == array.size() - 1) {
                System.out.println(array.get(j));
            } else {
                System.out.print(array.get(j) + ",");
            }
        }
    }
}

相关文章

  • 50成环报数,到3就出局,剩下最后那个编号是多少

  • 约瑟夫问题 递归解法

    约瑟夫问题是个有名的问题:N个人围成一圈,编号由0到N-1,从第一个开始报数,第K个将出局,最后剩下一个人。例如N...

  • js笔试题

    50个人围成一圈排上编号1-50,然后按照1、 2、 3循环报数。报到3的人移除,剩下的人接着从1开始报数,直至剩...

  • 约瑟夫算法

    1.约瑟夫算法:约瑟夫环:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的 人开始报数,...

  • Python约瑟夫圆环的解法

    现在有13个人围成一个环,从1开始报数,数到3的人离开,写出程序计算最后剩下的是谁。 使用while循环 使用fo...

  • 算法笔记_06:蓝桥杯练习 筛选号码

    1. 问题描述 问题描述有n个人围成一圈,顺序排号(编号为1到n)。从第1个人开始报数(从1到3报数),凡报到3的...

  • 蓝桥杯算法训练-筛选号码问题(Java语言)

    描述 有n个人围成一圈,顺序排号(编号为1到n)。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子。从下一...

  • python实现小孩报数问题

    N个小孩围成一个圈,由第1个小孩开始报数,报数为M的人出局,请问最后出局的小孩是第几个 代码如下:

  • python学习记录——day9

    先来一个小题约瑟夫环:30个人围成一圈,依次报数,数到9那么第九个人就被弄死。。然后重新报数,最后剩下15个人都是...

  • 约瑟夫环问题

    问题描述:n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。求胜利者的编...

网友评论

      本文标题:50成环报数,到3就出局,剩下最后那个编号是多少

      本文链接:https://www.haomeiwen.com/subject/crvqqxtx.html