package testbotoo;
/**
*
* @author
*/ public class Demo4 {
public static void main(String[] args)
{
CycLink cyclink = new CycLink();
cyclink.setLen(10);
cyclink.createLink();
cyclink.setK(2);
cyclink.setM(2);
cyclink.show();
cyclink.play();
} } class Child
{
int num;
Child nextChild = null; public Child(int num){
this.num = num;
}
} class CycLink
{
//先定义一个指向链表第一个小孩的应用
Child firstChild = null; Child temp = null;
int len = 0; //表示共有几个小孩
int k = 0;
int m = 0; //设置从第几个人开始数数
public void setK(int k)
{
this.k = k;
} public void setM(int m)
{
this.m = m;
} public void setLen(int len)
{
this.len = len;
} //开始play
public void play()
{
Child temp = this.firstChild;
//1.先找到开始数数的人
for(int i = 1; i<k;i++)
{
temp = temp.nextChild;
}
while(this.len!=1)
{
//2.数m下
for(int j=1;j<m;j++ )
{
if(j<m-1)
{
temp = temp.nextChild;
}else
{ //数到最后一下,打印要出圈的孩子的num
temp = temp.nextChild;
System.out.println("要出圈的小孩是"+temp.num);
}
}
//找到要出圈的前一个小孩
Child temp2 = temp;
while(temp2.nextChild!=temp)
{
temp2 = temp2.nextChild; } //3.将数到m的小孩推出圈
temp2.nextChild = temp.nextChild;
temp=temp.nextChild;
this.len--;
}
//最后一个小孩
System.out.println("最后剩下的小孩是:"+temp.num);
} //初始化环形链表
public void createLink()
{
for(int i = 1; i <= len; i++)
{
if (i==1)
{
//创建第一个小孩
Child ch = new Child(i);
this.firstChild = ch;
this.temp =ch;
}else if(i == len)
{
//创建最后一个小孩
Child ch = new Child(i);
temp.nextChild = ch;
temp =ch;
temp.nextChild = this.firstChild;
}else
{
Child ch = new Child(i);
temp.nextChild = ch;
temp = ch; }
}
} public void show()
{
//定义一个跑龙套的
Child temp = this.firstChild;
do{
System.out.println(temp.num);
temp = temp.nextChild;
}while(temp!=this.firstChild);
}
}

java===java习题---Josephu问题的更多相关文章

  1. Java/Java Web中乱码解决汇总

    在开发Java/Java Web Application过程中,往往会出现乱码问题,而且有的时候真会弄得人很烦,浪费太多的时间. 记得之前看过一篇帖子,详细解释了Encoding/Decoding过程 ...

  2. 新手如何学习Java——Java学习路线图

    推荐初学者阅读:新手如何学习Java——Java学习路线图

  3. [Jmeter]通过批处理调用java,java从CSV动态读取登录的用户名和密码,并将其作为参数组合成字符串,写入外部.bat文件,然后通过Java执行这个外部批处理文件

    问题1:怎样通过批处理调用java代码? 问题2:怎样通过java从CSV文件获取到用户名和密码存入变量? 问题3:怎样将获取到的用户名和密码组合成字符串,写入外部批处理文件? 问题4:怎样在批处理文 ...

  4. [JAVA] JAVA 类路径

    Java 类路径 类路径是所有包含类文件的路径的集合. 类路径中的目录和归档文件是搜寻类的起始点. 虚拟机搜寻类 搜寻jre/lib和jre/lib/ext目录中归档文件中所存放的系统类文件 搜寻再从 ...

  5. JAVA | Java对象的内存分配过程是如何保证线程安全的?

    JAVA | Java对象的内存分配过程是如何保证线程安全的? 专注于Java领域优质技术,欢迎关注 作者 l Hollis 来源 l Hollis(ID:hollischuang) JVM内存结构, ...

  6. SonarQube执行代码分析时,报错ERROR: Unable to create symbol table for : /**/*.java java.lang.IllegalArgumentException: Unsupported class file major version 55

    若要转载本文,请务必声明出处:https://www.cnblogs.com/zhongyuanzhao000/p/11686633.html 起因: 最近正在尝试SonarQube的简单使用,但是当 ...

  7. Log4j log for java(java的日志) 的使用

    log4j的使用,Log4j log for java(java的日志) 是java主流的日志框架,提供各种类型,各种存储,各种格式,多样化的日志服务. 可以再Apache官网下载得到. 我们下载lo ...

  8. IWAB0398E Error in generating WSDL from Java: java.lang.ClassNotFoundException

    今天想用Eclipse创建WebService,报错信息 IWAB0398E Error in generating WSDL from Java: java.lang.ClassNotFoundEx ...

  9. JAVA | Java 解决跨域问题

    JAVA | Java 解决跨域问题 Table of Contents 引言 什么是跨域(CORS) 什么情况会跨域 解决方案 前端解决方案 后端解决方案 具体方式 一.使用Filter方式进行设置 ...

  10. JIT-动态编译与AOT-静态编译:java/ java/ JavaScript/Dart乱谈

    C 和 C++ 之类的编译语言性能远超Java,但是生成的代码只能在有限的几种系统上执行,这就有了Java的存在基础(JVM-跨平台) 早期 Java 运行时所提供的性能级别远低于 C 和 C++ 之 ...

随机推荐

  1. sqlserver修改sa密码(在windows登陆没有权限的情况下)

    对于windows用户没有权限执行alter login sa enable的情况下,采用如下方法可以成功修改sa密码登陆. . 用Run as a administrator打开命令提示符里输入NE ...

  2. poj1456——Supermarket

    Supermarket Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 14656   Accepted: 6656 Desc ...

  3. POJ1284:Primitive Roots——题解

    http://poj.org/problem?id=1284 给一个奇质数p,求p的原根数量. 有一个结论:当正整数n存在原根时,其一共有phi(phi(n))个不同余的原根. 所以答案为phi(p- ...

  4. POJ1474:Video Surveillance——题解

    http://poj.org/problem?id=1474 题目大意:给按照顺时针序的多边形顶点,问其是否有内核. —————————————————————————————— (和上道题目一模一样 ...

  5. CF578C:Weakness and Poorness——题解

    https://vjudge.net/problem/CodeForces-578C —————————————————————————— 题目大意:序列的数-x,求最大连续子序列和的绝对值的最小值. ...

  6. PE格式示意图

  7. bzoj2588: Spoj 10628. Count on a tree(树上第k大)(主席树)

    每个节点继承父节点的树,则答案为query(root[x]+root[y]-root[lca(x,y)]-root[fa[lca(x,y)]]) #include<iostream> #i ...

  8. Educational Codeforces Round 6 A

    A. Professor GukiZ's Robot time limit per test 0.5 seconds memory limit per test 256 megabytes input ...

  9. noip模拟赛 helloworld

    分析:对于第一个点,答案为26^n - 25^n,这个很好想.另外30%的点因为n <= 5,所以可以直接暴力搜索. 数学方法不是很好处理,考虑dp,设f[i][j]为前i位匹配到危险串第j位的 ...

  10. Intervals ZOJ - 3953 (区间贪心)

    Chiaki has n intervals and the i-th of them is [li, ri]. She wants to delete some intervals so that ...