• 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();

      }

    }

    运行结果:

  • 相关阅读:
    内网穿透之 ssh 转发
    如何解决pytorch 编译时CUDA版本与运行时CUDA版本不对应
    如何监控GPU使用情况并杀死指定其中进程
    Screen 常用命令+VNC 启动停止命令总结
    C++快速文件输入输出
    Pycharm使用宝典
    Docker软件安装系列。
    Docker自动清理日志
    consul集群搭建说明
    jenkins搭建可以支持【FTP】上传功能的项目
  • 原文地址:https://www.cnblogs.com/duanqibo/p/11193050.html
Copyright © 2020-2023  润新知