约瑟夫问题解决方案
来源:互联网 发布:linux日志查询命令 编辑:程序博客网 时间:2024/05/20 08:24
/** * 作者:永锋 * 功能:约瑟夫问题 */package demo4;public class Yuesefu {public static void main(String[] args) {// TODO Auto-generated method stubCyclink c = new Cyclink();c.setLen(36);c.CreatLink();c.ShowLink();c.setK(5);c.setM(3);c.play();}}class Child {int num;Child netxtChile = 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; //表示从第K个开始数,数到第M个public void setLen(int len){this.len = len;}public void setK(int k){this.k = k;}public void setM(int m){this.m = m;}//初始化环形链表public void CreatLink(){for(int i = 1; i<=len; i++){Child ch = new Child(i);if(i == 1){//创建第一个小孩this.firstChild = ch;this.temp = this.firstChild;}else if(i == len){this.temp.netxtChile = ch;this.temp = ch;this.temp.netxtChile = this.firstChild;}else{this.temp.netxtChile = ch;this.temp = ch;}}}public void play(){//find the k child to start palyChild curChild = this.firstChild;Child preChild = this.firstChild;Child tmp = null;//find the preChild do{preChild = preChild.netxtChile;}while(preChild.netxtChile != curChild);do{for(int i=1; i<this.k; i++){preChild = curChild;curChild = curChild.netxtChile;}//find the m child from the k childfor(int j=1; j<this.m; j++){preChild = curChild;curChild = curChild.netxtChile;}//del the m childpreChild.netxtChile = curChild.netxtChile;curChild = curChild.netxtChile;this.len--;tmp = curChild;do{System.out.print(tmp.num + " ");tmp = tmp.netxtChile;}while(tmp != curChild);System.out.println("最后出圈:" + curChild.num);}while(this.len != 1);System.out.println("最后出圈:" + curChild.num);}public void ShowLink(){Child temp = this.firstChild;do{System.out.print(temp.num + " ");temp = temp.netxtChile;}while(temp != this.firstChild);System.out.println(" ");}}
0 0
- 约瑟夫问题解决方案
- Java 约瑟夫环问题解决方案
- Java中文问题解决方案
- IDEA中文问题解决方案
- ASP乱码问题解决方案
- struts国际化问题解决方案
- struts国际化问题解决方案
- java中文问题解决方案
- 图片路径问题解决方案
- MDAC问题解决方案
- Session丢失问题解决方案
- 国际化问题解决方案
- jsp中文问题解决方案
- AJAX乱码问题解决方案
- Session丢失问题解决方案
- vs2005问题解决方案集锦
- Adobe cs3问题解决方案
- 中文乱码问题解决方案
- 第十六周项目 阅读程序(4)
- Bzoj4556: [Tjoi2016&Heoi2016]字符串
- 八数码的启发式搜索
- 七牛---Java SDK常见问题总结
- Android之service详解
- 约瑟夫问题解决方案
- 第14周项目2-两个成员的类模板(2)
- java继承之属性与方法访问
- 关于ROS安装快而简洁的办法~适合初学者或无开发经验者“10分钟”即可搞定
- 图片拉伸
- Ubuntu 14.04 Web服务器,Apache的安装和配置
- Servlet 从小例子开始
- OpenResty学习笔记(三) 模块
- 在Android中使用SharedPreferences存储数据以实现数据共享