java例子:数组 数3退1
500个人围成一个圈子,数够3人,就退出1个,问最后剩下的是几号?
检验先有5个人,应该留下第4个人,由于是数组,所以第四个人的下标是3.
/*achieve the funtion :count 3 kids, the quit the third kid
use the object thinking */public class Test{public static void main(String[] args) {KidCircle kc = new KidCircle(5);int countNum = 0;Kid k = kc.first;while(kc.count > 1){countNum ++;if(countNum ==3){countNum =0;kc.delete(k);}k = k.right;}System.out.println(kc.first.id); }
}/* define class Kid*/
class Kid{int id;Kid left; //left is means the current kids'left kid Kid right; //right is means the current kids'right kid
}/* define class KidCircle*/
class KidCircle{int count = 0; //mean the circles'numberKid first,last; //define the circles' first kid and last kid.KidCircle(int n){//Constructor :new n numbers kid circlefor(int i = 0;i<n;i++){add();}}/*add a kid in the last kids'right*/void add(){/*first: new a kid;id = count*/Kid k = new Kid();k.id = count;/*if no kid in the circle ,the new kid is the first kid and is the last kid*/if(count <=0){first = k;last = k;k.left = k;k.right = k;}/*if has some kids in the circle,the new kid will stand at the last kids'right,and the new kids'left is the last kid. another: the new kids'right is the first kids'lest*/else{last.right = k;k.left = last;k.right = first;first.left = k;last = k;}count ++;}void delete(Kid k){if(count <= 0){return;}else if(count == 1){first = last =null;}else{k.left.right = k.right;k.right.left = k.left;if(k == first){first = k.right;}else if(k == last){last = k.left;}}count --;}
}
java例子:数组 数3退1相关推荐
- java实现数组的奇偶数互换
java实现数组的奇偶数互换 算法需求 算法思路 代码实现 算法需求 定义一个数组变量,将其中的元素进行调换,奇数放到数组左边,偶数放到数组右边 算法思路 偶数放右边,奇数放左边,可以先for遍历数组 ...
- java数组 初始化_用Java初始化数组
java数组 初始化 具有使用C或FORTRAN等语言进行编程的经验的人熟悉数组的概念. 它们基本上是一个连续的内存块,每个位置都是某种类型:整数,浮点数或您所拥有的. Java中的情况与此类似,但有 ...
- Java小试牛刀—数组
目录 1.前言 2.数组的基本概念 2.1 为什么使用数组 2.2 什么是数组 2.3 数组的创建及初始化 2.3.1 数组的创建 2.3.2 数组的初始化 2.4 数组的使用 2.4.1 数组中元素 ...
- 程序调用飞信API发送免费短信(JAVA例子,其他语言一样用)
网上看到有网页版的飞信,http://fetionlib.appspot.com/ 可以添加好友,群发和定时发送短信给飞信好友,还开放了API接口供程序调用,可以用它来监控机器是否正常服务定期给管理员 ...
- java集合——数组列表(ArrayList)+散列集(HashSet)
[0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java集合--数组列表(ArrayList)+散列集(HashSet) 的相关知识: 0.2 ...
- java 字符数组与字符串_用于字符串和数组的5种简单有效的Java技术
java 字符数组与字符串 Java通常会排在前五种最流行的编程语言中,因此可以理解. 它是一种通用语言,非常容易学习,因为它是一种高级语言,并且可以满足许多用例. 由于这些原因,Java是一门很棒的 ...
- jni java返回数组_Android开发实践:Java层与Jni层的数组传递
Android开发中,经常会在Java代码与Jni层之间传递数组(byte[]),一个典型的应用是Java层把需要发送给客户端的数据流传递到Jni层,由Jni层的Socket代码发送出去,当然,Jni ...
- Java语言程序设计 上机实验2 掌握Java的基本语言成分和流程控制语句。 掌握Java中数组的使用,理解引用数据类型。 掌握String类的使用。...
Java语言程序设计 上机实验2 实验目的: 掌握Java的基本语言成分和流程控制语句. 掌握Java中数组的使用,理解引用数据类型. 掌握String类的使用. 实验内容: 注:标(*)为选做内 ...
- JAVA学习-数组元素排序
JAVA实现数组元素排序,把数组中已知的10个数字由小到大排序后输出 代码: public class ArraryRank {//定义公共类public static void main(Strin ...
最新文章
- 网站服务器基本防范配置
- 笔记-信息系统开发基础-架构设计-软件体系结构评估方式
- Android中实现保存和读取文本文件到内部存储器(实现简易的记事本为例)
- Python双版本下创建一个Scrapy(西瓜皮)项目
- olap 多维分析_OLAP(在线分析处理)| OLAP多维数据集和操作
- 自反而缩,虽千万人,吾往矣。
- IT职场人生系列之七:学外语
- 魔域java_java序列化
- 2018 n1ctf easy_hard_php 攻击流程图
- HOOK使用:全局键盘钩子
- 【直观详解】信息熵、交叉熵和相对熵
- JDK集合源码解析剖析
- Enhancing Underwater Images and Videos by Fusion
- Google Earth Engine(GEE)——注册GEE被拒绝,官网的回复给出答案
- 洛谷 P2440 木材加工 (二分答案)
- mac上的APP 变成大问号了
- FPGA:什么是IO单元、IO标准、Bank、VCCO、VREF
- 郑州大学计算机系好请假吗,郑州大学网上信息
- 数据分析工具集合:Tableau入门及其他工具简介
- linux tail命令语法
热门文章
- php 加入日志功能,php怎么写一个日志功能的函数
- rocketmq 消息 自定义_RocketMQ消息轨迹-设计篇
- shiro反序列化工具_Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)源码解析
- Android OOM的解决方式
- Spring Boot 5:应用程序启动时初始化资源
- python2 openpyxl 复制excel内容到新的excel文件中 告警问题
- page,client,offset区别
- 黑马程序员—————— 多线程
- Ios17个常用代码整理
- UVA10785 The Mad Numerologist