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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • show java吧_求助【java吧】_百度贴吧

    show java吧_求助【java吧】_百度贴吧该楼层疑似违规已被系统折叠隐藏此楼查看此楼packageworker2;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;im…

    2022年7月7日
    30
  • mac 查看redis 版本[通俗易懂]

    mac 查看redis 版本[通俗易懂]redis-server-v

    2022年5月1日
    181
  • xsync集群同步脚本「建议收藏」

    xsync集群同步脚本「建议收藏」1:修改/etc/hosts文件:添加下面主机192.168.225.131hadoop101192.168.225.132hadoop102192.168.225.133hadoop1032:编写xsync文件用普通用户hadoop在/home目录下创建bin文件—–用于存放脚本的地方编写脚本:#!/bin/bash#1获取输入参数个数,如果没有参数,直接退出pcount=$#if((pcount==0));thenechonoargs;exit;

    2022年5月7日
    73
  • 一个15年ABAP老兵的建议:了解这些基础知识,对ABAP开发有百利而无一害

    一个15年ABAP老兵的建议:了解这些基础知识,对ABAP开发有百利而无一害SAPNetweaver 应用服务器是 SAPABAP 应用开发和运行平台 ABAP 开发人员在上面可以专注于具体业务逻辑的开发 凡涉及到更底层的基础设施相关任务 比如请求的负载均衡 进程的派生 同步和调度 内存管理 服务器多实例间缓存同步等等 统统交由 Netweaver 平台本身处理 如此一来 一个 ABAP 开发人员 即使不具备精深的计算机组成原理 操作系统 计算机网络等领域知识 也能胜任 SAP 应用的开发工作 本文详细介绍了 ABAP 服务器的各大组成部分和其职责所在 httpshttpsht

    2025年11月20日
    8
  • PLSQL 安装教程「建议收藏」

    PLSQL 安装教程「建议收藏」PLSQL安装教程1、首先要有oracle数据库或者有oracle服务器,才可以实现使用PLSQLDeveloper工具连接到oracle数据库进行开发.2、新建文件夹,将客户端文件放到里面D:\khd\instantclient_11_2,在文件夹instantclient_11_2中自己新建NETWORK文件夹,进入NETWORK文件夹新建ADMIN文件夹,将tnsn…

    2022年6月16日
    43
  • Git提交日志格式规约[通俗易懂]

    Git提交日志格式规约[通俗易懂]俗话说,无规矩不成方圆。前端时间,阿里诚意献上重磅大礼:《阿里巴巴Java开发手册》,首次公开阿里官方Java代码规范标准。这套Java统一规范标准将有助于提高行业编码规范化水平,帮助行业人员提高开发质量和效率、大大降低代码维护成本。那么问题来了,Git提交日志是否需要规范化呢?答案是肯定的。

    2022年6月7日
    119

发表回复

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

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