首先,我表明,我这个人喜欢偷懒。我先在网上看了一下。把代码下下来,用工具一运行,发现结果不对。明明已经踢出去的人,还可以继续游戏。找了半天,发现网上全是一样的,呵呵,可想而知现在的人多么的懒。呵呵,没法,我只好从代码里找错误,看能不能改正。呵呵。还不错。改过来了。看来啊,凡是都要验证一下才对,网上的东西也不一定全是对了。好了,废话不多说,我把代码粘贴下来,供大家娱乐一下。我觉得写代码本身就是一种游戏。呵呵。

//数据类

class Child {

int no;  //编号

Child nextChileChild = null;  //指向下一个人

public Child(int no) {

this.no = no;

}

}

//链表类

//环形链表

class CycLink {

// 先定义一个指向链表第一个小孩的那个引用

// 指向第一个小孩的引用,不能动

Child firstChild = null;

Child temp = null;

int len = 0;// 表示共有几个小孩

int k;

int m;

// 设置链表大小

public void setLen(int len) {

this.len = len;

}

public void setK(int k) {

// 设置第几个人开始数数

this.k = k;

}

public void setM(int m) {

// 设置m

this.m = m;

}

public void play() {

// 1找到开始数数的人

Child temp = this.firstChild;

for (int i = 1; i < k; i++) {

temp = temp.nextChileChild;

}

// 数M下

while (this.len != 1) {

for (int j = 1; j < m; j++) {

temp = temp.nextChileChild;

}

Child temp2 = temp;// 找到要出圈的前一个小孩

// 讲数到M的小孩 退出圈

temp2=temp2.nextChileChild;

temp.nextChileChild=temp2.nextChileChild;

System.out.println("现在出圈的是" + temp2.no);

this.len--;

}

// 打印最优一个小孩

System.out.print("最后出圈的是:" + temp.no);

}

// 初始化链表

public void creatLink() {

for (int i = 1; i <= len; i++) {

if (i == 1) {

// 创建第一小孩

Child child = new Child(i);

this.firstChild = child;

this.temp = child;

} else {

if (i == len) {

Child child = new Child(i);

temp.nextChileChild = child;

temp = child;

temp.nextChileChild = this.firstChild;

} else {

// 继续创建小孩

Child child = new Child(i);

temp.nextChileChild = child;

temp = child;

}

}

}

}

public void show() {

Child temChild = this.firstChild;

do {

System.out.println(temChild.no + "###");

temChild = temChild.nextChileChild;

} while (temChild != this.firstChild);

}

}

//主方法类

public class Demo4 {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

CycLink cyclink  =new CycLink();

cyclink.setLen(100);

cyclink.creatLink();

cyclink.setK(2);

cyclink.setM(2);

cyclink.show();

cyclink.play();

}

}

呵呵,我也只是简单测试了一下,如果大家发现我的代码有问题,请跟我说,我们一起讨论,我会虚心受教的。呵呵,毕竟我也是菜鸟。呵呵

丢手帕问题 java_丢手帕问题java 实现相关推荐

  1. 丢手帕问题 java_丢手帕问题,java实现

    今天偶然发现一个很经典的算法问题:丢手帕问题.问题的具体描述是:N个人围成一圈,然后从第A个人开始报数(报数从1开始).报数为B的人出列,然后后面的人从新开始报数,请问,最后一个人是多少号. 刚开始觉 ...

  2. 丢手帕问题 java_丢手帕问题 (java实现)

    /** *@author zhouhong *@fuction:丢手帕问题 */ package com.zhouhong10; import com.zhouhong10.*; public cla ...

  3. 丢手帕问题 java_初学java丢手帕问题

    packagediushoupa;importjava.util.Scanner;publicclasstext1{publicstaticvoidmain(String[]args){CycLine ...

  4. 丢番图生平编程java_丢番图与麦乐鸡购买问题

    在MIT公开课<计算机科学与编程导论>的Assignment2中,提到了丢番图方程,并有趣地将丢番图方程和卖麦乐鸡的问题联系到了一起. 首先让我们来看看维基百科中介绍的丢番图方程. 一.丢 ...

  5. 丢番图生平编程java_丢番图

    [拼音]:Diufantu [外文]:Diophantus (活动于250年前后) 希腊代数学家.对他的生平事迹人们知道得很少.但流传着一首短诗(或墓志铭),用谜语的形式叙述了他的生平:"丢 ...

  6. jsp中如何运行java_从上帝视角看Java如何运行

    有头发且有趣的码农万里挑一~ 06 有料叔 | 一位有故事的程序猿 JVM内存结构 可以看出JVM从宏观上可以分为 '内部'  及 '外部'  两个部分(便于记忆理解): '内部'包含:线程共享(公有 ...

  7. 我的世界最佳java_我的世界JAVA版20w47a

    我的世界JAVA版20w47a是一款模拟沙盒游戏,游戏中有不同的玩法,可以让你在这里进行刺激的挑战,同时还可以制作各种物品,想要收集材料就需要去探索各个地图,你还可以与玩家互动,分享自己的创意,相互交 ...

  8. 我的世界海洋java_我的世界Java版开发者们畅聊水域更新

    我的世界1.13水域更新将会是一次非常庞大的更新,该版本还在开发和设计中,想了解开发者们将会在海洋世界里添加什么好玩有趣的内容吗?那就赶快来看看吧! [我的世界pc版交流群1]欢迎各位小伙伴加入!群号 ...

  9. 计算机术语桢什么意思,请问电脑丢帧严重的“丢帧”是啥意思哦?

    光学鼠标的光学传感器就像一个摄像机,它连续的高速的对定位平面进行拍照(或者说录像).这种拍照是在一个固定频率上的(有人叫它刷新率,有人叫它扫描频率,都是一样,这里就叫它扫描频率了),并且每帧画面有个尺 ...

最新文章

  1. debian10 简单的CA使用
  2. 4个步骤成功构建出一个机器学习团队
  3. java.lang.IllegalArgumentException: Path index does not start with a / character
  4. css overflow属性的测试
  5. LaTeX设置参考文献条目行距以及条目内行距的方法
  6. java画图颜色_手绘板,多种颜色选择。我抄的《疯狂java讲义》的,包我乱导的,但代码能用。...
  7. BZOJ1257:[CQOI2007]余数之和(整除分块)
  8. 经典vim插件功能说明、安装方法和使用方法
  9. magisk卸载内置软件_软件卸载工具的终极武器——Revo Uninstaller
  10. 友华PT921G光猫实现黑群晖外网唤醒
  11. L2TP设置-如果更改了公网IP,需要更改哪些东西?
  12. 基于用户标签的时间衰减因子
  13. Openpcd安装过程记录
  14. mysql the cabinet_mysql 一个较特殊的问题:You can’t specify target table ‘wms_cabinet_form’ | 很文博客...
  15. 机器学习第五章之决策树模型
  16. 去中心化云图床搭建建议:Cyberduck+4everland bucket
  17. 论文精读 清华ERNIE:Enhanced Language Representation with Informative Entities
  18. Linux学习笔记(七)创建文件
  19. python 获取昨天的时间
  20. bzoj5197 Gambling Guide

热门文章

  1. 笔记二:php去除空格
  2. 【亲测已解决】CentOS7 ifconfig commend not fount(命令找不到)
  3. MySQL之锁-表级锁
  4. 光纤收发器的六个指示灯代表是什么意思?
  5. 配置oem 13c以监控管理数据库
  6. NS3中路由协议分析【AODV代码分析】
  7. 重载和重写的区别及在typescript中的使用
  8. 长安链源码学习v2.2.1--ioc机制(十)
  9. 计算机缺少opencl.dll,opencl.dll损坏,如何修复
  10. TYPEC 接口芯片CC逻辑原理与必要性