java===java习题---Josephu问题

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问题的更多相关文章
- Java/Java Web中乱码解决汇总
在开发Java/Java Web Application过程中,往往会出现乱码问题,而且有的时候真会弄得人很烦,浪费太多的时间. 记得之前看过一篇帖子,详细解释了Encoding/Decoding过程 ...
- 新手如何学习Java——Java学习路线图
推荐初学者阅读:新手如何学习Java——Java学习路线图
- [Jmeter]通过批处理调用java,java从CSV动态读取登录的用户名和密码,并将其作为参数组合成字符串,写入外部.bat文件,然后通过Java执行这个外部批处理文件
问题1:怎样通过批处理调用java代码? 问题2:怎样通过java从CSV文件获取到用户名和密码存入变量? 问题3:怎样将获取到的用户名和密码组合成字符串,写入外部批处理文件? 问题4:怎样在批处理文 ...
- [JAVA] JAVA 类路径
Java 类路径 类路径是所有包含类文件的路径的集合. 类路径中的目录和归档文件是搜寻类的起始点. 虚拟机搜寻类 搜寻jre/lib和jre/lib/ext目录中归档文件中所存放的系统类文件 搜寻再从 ...
- JAVA | Java对象的内存分配过程是如何保证线程安全的?
JAVA | Java对象的内存分配过程是如何保证线程安全的? 专注于Java领域优质技术,欢迎关注 作者 l Hollis 来源 l Hollis(ID:hollischuang) JVM内存结构, ...
- 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的简单使用,但是当 ...
- Log4j log for java(java的日志) 的使用
log4j的使用,Log4j log for java(java的日志) 是java主流的日志框架,提供各种类型,各种存储,各种格式,多样化的日志服务. 可以再Apache官网下载得到. 我们下载lo ...
- IWAB0398E Error in generating WSDL from Java: java.lang.ClassNotFoundException
今天想用Eclipse创建WebService,报错信息 IWAB0398E Error in generating WSDL from Java: java.lang.ClassNotFoundEx ...
- JAVA | Java 解决跨域问题
JAVA | Java 解决跨域问题 Table of Contents 引言 什么是跨域(CORS) 什么情况会跨域 解决方案 前端解决方案 后端解决方案 具体方式 一.使用Filter方式进行设置 ...
- JIT-动态编译与AOT-静态编译:java/ java/ JavaScript/Dart乱谈
C 和 C++ 之类的编译语言性能远超Java,但是生成的代码只能在有限的几种系统上执行,这就有了Java的存在基础(JVM-跨平台) 早期 Java 运行时所提供的性能级别远低于 C 和 C++ 之 ...
随机推荐
- 转:Scipy入门
Scipy入门 转:http://notes.yeshiwei.com/scipy/getting_started.html 本章节主要内容来自 Getting Started .翻译的其中一部分,并 ...
- CentOS 普通用户提升root权限
1.sudo命令可以使普通用户具备root用户的权限,使用前,需要先配置/etc/sudoers文件. #sudoers文件是只读,一般情况下都是用visudo来修改,visudo也一定程度上可以保证 ...
- CentOS ACL
ACL:访问控制列表(Access Control List). 一般来说权限是针对某一类用户设置的.例如:一个文件只有拥有者.组.其他用户三种设置方式,如果希望对某个指定的用户进行单独的权限控制,就 ...
- [NOIP2012]疫情控制 贪心 二分
题面:[NOIP2012]疫情控制 题解: 大体思路很好想,但是有个细节很难想QAQ 首先要求最大时间最小,这种一般都是二分,于是我们二分一个时间,得到一个log. 然后发现一个军队,越往上走肯定可以 ...
- 【CKplayer】使用CKplayer插件在网页中嵌入视频的方法
在做网站中有时候我们需要在网页中嵌入视频,一般视频嵌入有以下几种方法: 1. 优酷代码嵌入 优点:简单,方便,可靠. 缺点:有广告,现在的网站非常注重用户体验,如果打开一个在线视频是有长广告的一定会崩 ...
- BZOJ1060:[ZJOI2007]时态同步——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=1060 https://www.luogu.org/problemnew/show/P1131 小Q在 ...
- ES6 Set,WeakSet,Map,WeakMap
1. Set Set是一个集合,里面的值都是唯一的,没有重复的.Set中可以是任何数据类型,并且添加数据时会进行严格比较,重复数据无法加入. 2. WeakSet 弱引用Set.只能存储对象,不能存储 ...
- JavaScript非阻塞加载脚本
As more and more sites evolve into “Web 2.0″ apps, the amount of JavaScript increases. This is a per ...
- ACE反应器(Reactor)模式(2)
转载于:http://www.cnblogs.com/TianFang/archive/2006/12/18/595808.html 在Socket编程中,常见的事件就是"读就绪" ...
- swift的一些东西
.cmd+k 键盘toggle .模拟器的handware设置ios键盘 .设置textfield的return类型为搜索 k.returnKeyType=UIReturnKeyType.search ...