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. placeholder 颜色

    /* placeholder颜色 */::-webkit-input-placeholder { /* WebKit browsers */color: #ccc;}:-moz-placeholder ...

  2. intelliJ IDEA最常用的快捷键

    一.使用相关快捷键 1.重写接口实现类:Ctrl+I 2.搜索:Shift+Shift   3.生成get或set方法快捷键:Alt+insert: 4.导入未实现的方法,强制类型转换:Alt+Ent ...

  3. 【bzoj2834】回家的路 分层图最短路

    题目描述 输入 输出 样例输入 2 1 1 2 1 1 2 2 样例输出 5 题解 分层图最短路 dis[i][0]表示到i为横向时起点到i的最短路,dis[i][1]表示到i为纵向时起点到i的最短路 ...

  4. ocker nginx 配置反向代理和负载均衡

    1. 获取及配置nginx 如果需要全站通过docker部署,那么nginx或许是不可或缺的.通过配置nginx,可以迅速实现负载均衡和反向代理服务.值得一提的是,docker官网恰好也有nginx镜 ...

  5. 用camke编译python程序

    project(test) cmake_minimum_required(VERSION 3.0) find_package(OpenCV REQUIRED) find_package (Python ...

  6. Java CPU占用率高分析

    首先,通过top命令找出CPU占用率高的进程: 然后,通过ps -o THREAD,tid,time -mp 2066命令找出执行时间最长的线程的TID 将有问题的TID转为16进制格式: print ...

  7. DPM(Deformable Parts Model)--原理(一)

    http://blog.csdn.net/ttransposition/article/details/12966521 DPM(Deformable Parts Model) Reference: ...

  8. tinyxml源码解析(中)

    转载于:http://www.cnblogs.com/marchtea/archive/2012/11/20/2766756.html 前言: 之前趁着这段时间比较空闲,也因为听闻tinyxml大名, ...

  9. ASP.NET基础学习未整理随笔

    利用新建网站添加的项目可以改完代码直接刷新就行 提交到服务程序的表单一定要具有name.<input type="hidden"value="true"n ...

  10. Leetcode 138. 复制带随机指针的链表

    1.题目要求 给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点. 要求返回这个链表的深度拷贝. 2.解题思路 (1)笔试思路(求速度,拿分数):使用哈希表 /* ...