//约瑟夫环:已知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. STL笔记(5)条款49:学习破解有关STL的编译器诊断信息
  2. 计算机图形学-MFC界面分屏操作
  3. 面试题系列-mysql连环13问
  4. 支付宝将砸十亿支持中国女足发展:她们才是第一女子天团
  5. bp神经网络测试_BP 神经网络驱动的手写体数字识别软件 EasyOCR
  6. python中使用什么获取两个集合的补集_python中求两个List的交集、并集和差集
  7. java+JNI 生成包头文件与调用实例
  8. gridview選發行彈出層 模板列
  9. MySQL数据库餐厅点菜系统_Java实现餐厅点餐系统的实例代码
  10. 音频处理之语音加速播放
  11. Ubuntu下libxml2的安装和使用
  12. java 音频波形图_java读取wav文件(波形文件)并绘制波形图的方法
  13. 浏览器 本地html 图片不显示,网页不显示图片怎么解决?
  14. Java实现中国象棋(联机版)
  15. (二)Tushare Pro教程:上市公司财务数据接口
  16. 遥测、遥信、遥控、遥调的简要说明
  17. 广告联盟识别作弊方法
  18. 高德地图打包报错:‘AMap‘ is not defined 解决方案
  19. 消息队列mq的原理及实现方法
  20. 在家中搭建网站服务器可行吗?

热门文章

  1. android 广告close,小程序广告弹出与关闭
  2. 学前教育与计算机,计算机与幼儿教育
  3. php 瓶颈,使用XHProf查找PHP性能瓶颈
  4. 删除替换字符串中第一次出现的字符串
  5. 类GeometricShapeFactory-JTS几何图形绘制API
  6. Android开发笔记(一百六十五)利用红外发射遥控电器
  7. Android开发笔记(四十八)Thread类实现多线程
  8. KVM 管理与使用说明
  9. 面试题:String StringBufere StringBuilder 不用看
  10. perf-perf stat用户层代码分析