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

//数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依次规律重复下去,直到圆

//桌周围的人全部出列。

//Java源程序如下

package Joseph_Circle;

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

public class Joseph_circle {

  public static void Joseph(int total,int N,int count)

  {

  //初始化人数

    List<Integer> start = new ArrayList<Integer>(); //Java中的泛型,即ArrayList只能存放整型数

    for(int i=1;i<=total;i++)

    {

      start.add(i);

    }

    //从第k个开始计数

    int k=N;

    while(start.size()>0)

    {

      k = k + count - 1; //从第3个人开始数,数5个人,应该是第7个人

      //第m个人的位置

      k = k % (start.size()) - 1;

      //判断是否到队尾

      if(k<0)

      {

        System.out.print(start.get(start.size()-1) + "  ");

        start.remove(start.size() - 1);

        k=0;

      }

      else

      {

        System.out.print(start.get(k) + "  ");

        start.remove(k);

      }

    }

  }

  public static void main(String[] args)

  {

    Scanner reader=new Scanner(System.in);

    System.out.print("请输入总人数:");

    int totalNum=reader.nextInt();

    System.out.print("从第几个人开始报数:");

    int start_N=reader.nextInt();

    System.out.print("请输入报数的大小:");

    int cycleNum=reader.nextInt();

    Joseph(totalNum,start_N,cycleNum);

    reader.close();

  }

}

运行结果:

转载于:https://www.cnblogs.com/duanqibo/p/11193050.html

Joseph_Circle(约瑟夫环)相关推荐

  1. python中约瑟夫环程序_Python实现约瑟夫环问题的方法

    本文实例讲述了Python实现约瑟夫环问题的方法.分享给大家供大家参考,具体如下: 题目:0,1,...,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的 ...

  2. 约瑟夫环问题的两种解法(详解)

    约瑟夫环问题的两种解法(详解) 题目: Josephus有过的故事:39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓.于是决定了自杀方式,41个人排成一个圆 ...

  3. python约瑟夫环问题给十个学生编号报到3者出列_趣味算法--约瑟夫环问题(示例代码)...

    问题描述 已知n个人(以编号1,2,3,...,n分别表示)围坐在一张圆桌上.指定编号为k的人开始从1报数,数到m的那个人出列:出列那个人的下一位又从1开始报数,数到m的那个人出列:以此规则重复下去, ...

  4. 一文读懂约瑟夫环算法

    2020-05-25 20:13:40 作者 | 扬帆向海 责编 | 王晓曼 出品 | CSDN博客 问题描述 约瑟夫问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题.在计算机编程的 ...

  5. 面试题小记:1、统计字符串出现的次数,2、约瑟夫环问题

    今天面到了一个比较有意思的笔试题,先记录一下: 1.字符串类似'aaabbccddd',写个方法得出'3a2b2c3d',即统计字符串出现的个数 $arr = str_split('aaabbccdd ...

  6. java实现简单的约瑟夫环问题(二)

    Josephus(约瑟夫)问题的数学方法 前面的内容都是直接来来自于百度百科,后面才是我对这段话的理解 无论是用链表实现还是用数组实现都有一个共同点:要模拟整个游戏过程,不仅程序写起来比较烦,而且时间 ...

  7. 约瑟夫环双向链表c语言实,双向链表与约瑟夫环代码

    双向链表 //注意:该文件操作的链表为带头结点双向链表,头结点数据为-1 #include #include #include #define OK 1 #define ERROR 0 typedef ...

  8. python解决约瑟夫问题_Python实现约瑟夫环问题的方法

    本文实例讲述了Python实现约瑟夫环问题的方法.分享给大家供大家参考,具体如下: 题目:0,1,...,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的 ...

  9. 约瑟夫环(约瑟夫问题)求最后出列的人数

    约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又出 ...

最新文章

  1. R语言使用ggplot2绘制带有边缘直方图的散点图实战
  2. 稳扎稳打Silverlight(29) - 2.0Tip/Trick之Cookie, 自定义字体, 为程序传递参数, 自定义鼠标右键...
  3. ios 监听TextField中内容变化
  4. XCTF WEB weak_auth
  5. WebSocket服务器上的oTransactionID_SiteDetailMap的qrcode是何时生成的
  6. [codevs1105][COJ0183][NOIP2005]过河
  7. Hadoop从安装Linux到搭建集群环境
  8. mysql 上一篇_mysql取上一篇和下一篇的查询
  9. 苹果推出Apple Pay防欺诈功能 目前仅限于Visa
  10. 留给星巴克的时间不多了
  11. mschart mysql_在VB mschart里面可以一个MSCHART同时显示曲线和状图吗?
  12. Python字符串串联
  13. Java中的==符号与equals()的使用(测试两个变量是否相等)
  14. 萌新分享打印文件夹下所有文件的代码
  15. Android对话框的详细介绍(提示对话框,自定义对话框)
  16. 人工智能挑战教师角色独特性 与教育教学融合显现独特优势
  17. Vscode运行Demo程序出现错误
  18. 智能工厂具体的名词解释
  19. pandas常用命令
  20. influxdb官网文档翻译

热门文章

  1. 上位机服务器通讯协议,家庭监护终端与手机、上位机及服务器通讯协议22.doc
  2. java实验6 词频统计_Java实现的词频统计——单元测试
  3. java实心菱形_java打印出实心菱形与空心菱形
  4. 安卓最好的浏览器_今日软件 | AI一键抠图、隐私保护工具、全能下载器、安卓启动器、茄子快传、迅雷、批量字符替换、傲游浏览器、全局负一屏...
  5. resttemplate发送post请求
  6. Mybatis注解的方式,如何实现MySQL ,update后,返回更新后的值
  7. mysql 杀掉会话
  8. Spring Cloud Config 使用总结
  9. 如何转换并压缩png格式图片
  10. Wine 4.4 发布,Windows 应用的兼容层