美文网首页
面试题约瑟夫: n个人围成一圈,报到m的人出列

面试题约瑟夫: n个人围成一圈,报到m的人出列

作者: A_Coder | 来源:发表于2016-10-11 21:23 被阅读0次

有N个人围成一圈,第一个人从1开始报数,报到M的人出列,求最后一个出列的人。
java实现的:

import java.util.Arrays;

public class Test {
    public static void main(String[] args) {
        queue(10, 3);
    }

    private static void queue(int total, int num) {
        // TODO Auto-generated method stub
        //定义一个数组,true表示没有出列的,false表示已经出队列的
        boolean []arr = new boolean[total];
        Arrays.fill(arr, true);
        
        //移动变量,如1 2 3
        int next= 0;
        
        //数组下标
        int index = 0;
        
        //剩下的人数
        int remain = total;
        
        //如果剩下的人为1时,停止报数
        while(remain > 1) {
            for(index = 0; index < total; index++){
            if (arr[index] == true) {
                next++; //自增到规定的出列数num
                if(next == num ) {
                    arr[index] = false;
                    remain--;
                    System.out.println("依次出列的人数为:" + (index + 1));
                    next = 0; //当数到规定的数是,从0开始数
                } 
            }
        }
        }
        for (int i = 0; i < total; i++){
            if (arr[i] == true) {
                System.out.println("最后剩下的人是:"  + (i + 1));
                break;
            }
        }
    
        
    }
}

相关文章

  • josephus 约瑟夫环递归解决分析

    题目:n个人围成一圈(编号从1到n),从第1个人开始报数,报到m的人出列,从下一个人再重新报数,报到m的人出列,如...

  • 面试题约瑟夫: n个人围成一圈,报到m的人出列

    有N个人围成一圈,第一个人从1开始报数,报到M的人出列,求最后一个出列的人。java实现的:

  • 使用单链表解决约瑟夫问题

    问题描述: N个人围成一圈,从第k个人开始报数,报到m的人出圈,剩下的人继续从1开始报数,报到m的人出圈;如此往复...

  • python约瑟夫问题-最全面,经典

    1.需求---- 经典约瑟夫问题 首先,我们需要知道什么是约瑟夫问题?即设有n个人围成一圈,现从第m个人开始报数,...

  • [java]约瑟夫环问题

    约瑟夫环问题:一圈共有N个人,开始报数,报到M的人自杀,然后重新开始报数,问最后自杀的人是谁?

  • N个人围成一圈报数

    1. 有N个人围成一圈,顺序排号,从第一个人开始报数,凡是报到M的人退出圈子,问最后留下的几号? 2. N个人围成...

  • 用C链表实现约瑟夫环问题

    问题:设有n个人围成一个圆圈,现从第s个人开始报数,数到第m的人出列,然后从出列的下一个人重新开始报数,数到第m的...

  • 3个月熟练使用python--Day2打卡

    1、约瑟夫环问题 问题:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最...

  • 约瑟夫环

    问题:1~n个人围成一圈,从1开始报数,每次数到m这个人就出列,问最后剩下的是几号? 做法:递归。 假设剩下的是f...

  • 约瑟夫问题 -- python实现

    问题描述 N个人围成一个圈, 从第一个人开始报数, 报到M的人出圈, 剩下的人继续从1开始报数, 报到M的人出圈;...

网友评论

      本文标题:面试题约瑟夫: n个人围成一圈,报到m的人出列

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