zoukankan      html  css  js  c++  java
  • 约瑟夫环--中等难度

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

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

    public class App5_3 {

      public static void main(String[] args)

      {

        final int N=13,S=3,M=5;  //从第3个人开始,顺序数到第5个人,则出圈,依次进行

        int i=S-1,j,k=N,g=1;

        int []a=new int[N];

        for(int h=1;h<=N;h++)

          a[h-1]=h;         //把每个人的编号存入数组中,数组的下标从0开始

        System.out.print(" 出圈的顺序为:");

        do

        {

          i=i+(M-1);  //i代表出圈人的下标

          while(i>=k)

            i=i-k;   //当数组的下标大于等于圈中人数时,将数组的下标i减去圈中的人数k

          System.out.print("   "+a[i]);

          for(j=i;j<k-1;j++)

            a[j]=a[j+1];   //a[i]出圈后,将后续人的编号前移

          k--;   //圈中的人数k减1

          g++;   //g为循环控制变量

        }while(g<=N);

      } 

    }

  • 相关阅读:
    BOJ 85 Three Points On A Line
    BOJ 84 Single Number
    BOJ 83 A + B Problem
    【转载】运算符优先级
    匹配体重和为特定值的人,两两成对
    The Brand New Beginning!
    【失败】制作CentOS镜像
    【制作镜像】安装VMwareTool
    部署巡检脚本
    windows server 2008镜像重启后密码变为默认密码的问题的解决方案
  • 原文地址:https://www.cnblogs.com/duanqibo/p/11131886.html
Copyright © 2011-2022 走看看