Java实现约瑟夫环问题「建议收藏」

Java实现约瑟夫环问题「建议收藏」约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。/***@author16026**/importjava.util.ArrayList;importjava.util.List;

大家好,又见面了,我是你们的朋友全栈君。

约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。


/** * @author 16026 * */
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Yue { 
   
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入总人数:");
        int totalNum = scanner.nextInt();
        System.out.print("请输入报数的大小:");
        int cycleNum = scanner.nextInt();
        yuesefu(totalNum, cycleNum);
        scanner.close();
    }

    public static void yuesefu(int totalNum, int countNum) {
        // 初始化人数
        List<Integer> start = new ArrayList<Integer>();
        for (int i = 1; i <= totalNum; i++) {
            start.add(i);
        }
        // 从第K个开始计数
        int k = 0;
        while (start.size() > 0) {
            k = k + countNum;
            // 第m人的索引位置
            k = k % (start.size()) - 1;
            // 判断是否到队尾
            if (k < 0) {
                System.out.println(start.get(start.size() - 1));
                start.remove(start.size() - 1);
                k = 0;
            } else {
                System.out.println(start.get(k));
                start.remove(k);
            }
        }
    }
}

这里写图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136223.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 焦点科技怎么老是招人_苹果链,蓝思科技,歌尔股份,立讯精密,欧菲光,谁是老大?…

    焦点科技怎么老是招人_苹果链,蓝思科技,歌尔股份,立讯精密,欧菲光,谁是老大?…苹果链在6月初到7月中旬走了一波行情,目前又到了反复阶段,在大盘逐步整理,又回到结构性的状态的弱势时期,在资金在板块之间游离的情况下,不少投资者把目光关注到近期没有震荡,保持一定平稳的板块,不少投资者就注意到了苹果链板块上,那么这几只个股,究竟谁是老大?蓝思科技大家好,我是蓝思科技,我主营中高端视窗防护玻璃面板、外观防护新材料的研发、生产。不忙,这只我基本的操作,算不上什么,仔细看着大家,我有玻璃…

    2022年5月3日
    89
  • FastQC_fastech

    FastQC_fastech1、下载fastqc2、解压3、给予执行权限,否则执行的时候会显示没有权限cdFastQCchmod755fastqc4、加入到PATHexportPATH=/home/h/Fas

    2022年8月5日
    5
  • linux ssh代理 –快速搭建代理服务器

    linux ssh代理 –快速搭建代理服务器前言:开发机器IP固定,路由上有限制,不通直连。是个很郁闷的事。有个时间在网上看到的ssh代理转发。命令功能很强大。在这我就对自己了解的画了个间图方便大家理解。本地转发、正向隧道“本机”连上“ssh服务器”,然后把”ssh服务器”能访问的机器地址和端口(当然也包括“ssh服务器”自己)镜像到”本机”的端口上。命令:ssh-L[客户端IP或省略]:[客户端端口]:[服务器侧能访问的IP]:[服

    2022年5月24日
    173
  • 丫丫考了100分_小明考了0分

    丫丫考了100分_小明考了0分CCF201812-1小明上学题目背景  小明是汉东省政法大学附属中学的一名学生,他每天都要骑自行车往返于家和学校。为了能尽可能充足地睡眠,他希望能够预计自己上学所需要的时间。他上学需要经过数段道路,相邻两段道路之间设有至多一盏红绿灯。  京州市的红绿灯是这样工作的:每盏红绿灯有红、黄、绿三盏灯和一个能够显示倒计时的显示牌。假设红绿灯被设定为红灯r秒,黄灯y秒,绿灯g秒,那…

    2022年5月3日
    37
  • 个人防火墙软件排名「建议收藏」

    个人防火墙软件排名「建议收藏」1.Look’n’stopLook’n’Stop被誉为世界顶级防火墙!与同类产品相比具有最为突出的强劲功能以及与众不同的特点,不仅功能评测在知名防火墙中是最强的!而且软件大小只有区区600多k十分小巧,占内存非常小,可以监控dll,更具强大的御防******能力!下载Look’n’stop:[url]http://3800cc.com/Soft/aqfh/2129.h…

    2022年5月5日
    105
  • jQuery雷达扫描切换幻灯片代码

    jQuery雷达扫描切换幻灯片代码

    2021年9月8日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号