• Joseph_Circle(约瑟夫环)


    //约瑟夫环:已知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();

      }

    }

    运行结果:

  • 相关阅读:
    JSP,TOMCAT,JD,mysql环境搭建和连接数据库
    jsp基础学习记录
    将d盘根目录下的troydll.dll插入到ID为4000的进程中
    WebSocket内部原理
    基于流(Comet Streaming)
    短轮询
    DjangoWebSocket
    01WebSocket是什么
    Python实现WebSocket
    WebSocket
  • 原文地址:https://www.cnblogs.com/duanqibo/p/11193050.html
Copyright © 2020-2023  润新知