有100个人围成一个圈,从1开始报数,报到14的这个人就要退出
来源:互联网 发布:linux如何嗅探欺骗 编辑:程序博客网 时间:2024/05/16 07:53
package com.itheima;import java.util.ArrayList;import java.util.List;/* * 10、 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人? */public class Test10 {public static void main(String[] args) {Circle c = new Circle();c.exits2();}}class Circle{private List<Integer> queue = new ArrayList<Integer>(); //队列private int maxIndex = 0; //最大索引值private int currentIndex = 0; //当前索引值//第一种方法public void exit(){//生成队列for(int i=1; i<=100; i++){queue.add(i);}maxIndex = queue.size() - 1;while(queue.size() > 1){for(int j=1; j<=14; j++){//如果当前索引大于了最大索引,说明已经数到最后一个号,重新数if(currentIndex > maxIndex){currentIndex = 0;}System.out.println("第" + queue.get(currentIndex) + "号,数" + j);if(j==14){System.out.println("第" + queue.remove(currentIndex) + "号退出"); //去除当前索引的值,将队列的后面的值都提前一个索引System.out.println("当前存在的号为:" + queue);maxIndex--; //最大索引减一,currentIndex当前索引不变,即将队列后面一个号,作为当前的索引值}else{currentIndex++; //每循环一次,当前的索引就会加一,跳到队列中的下个数}}}}//第二种方法public void exits2(){boolean[] queue = new boolean[100];for(int i=0;i<queue.length;i++){queue[i] = true;}int len = queue.length;int count = 0;while(len>1){for(int i=0;i<queue.length;i++){if(queue[i]==true){count++;if(count == 14){queue[i] = false;count=0;len--;}}}}for(int i=0;i<queue.length;i++){System.out.println(i + " : " + queue[i]);}}}
0 0
- 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出
- java小题, 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。
- 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出, 然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
- 有 100 个人围成一个圈,从 1 开始报数,报到 14 的这个人就要退出。然后其他人重新开始, 从 1 报数,到 14 退出。问:最后剩下的是 100 人中的第几个人?
- 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
- P123.32(有57个人围成一个圈,顺序排号,从第一个人开始报数(从1~4报数),凡报到四的人退出圈子,问最后留下的是原来的几号?)
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数)凡报到3的人退出圈子问最后留下1个人的是原来第几号的那位。
- 有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位
- 有n个人围成一圈,循序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号人。
- 约瑟夫环问题:有n个人围成一圈,顺序编号。从第1个人开始报数(从1-m报数),凡报到m的人退出圈子,问最后留下的是原来第几号的那位?
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
- 题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下 的是原来第几号的那位。
- python 实现:题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下 的是原来第几号的那位。
- .NoClassDefFoundError: org/xmlpull/v1/XmlPullParserException
- 有趣的 Scala 语言: 使用递归的方式去思考
- Hdu 4836 The Query on the Tree
- 百度地图 根据地址获取经纬度
- UML 包图
- 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出
- Compressive Sensing资源
- Time drift detected. Please check VKTM trace file for more details
- 用微软企业库5.0插入数据到oracle11g并返回其id
- 使用 SharedPreferences
- ffmpeg tutorial 4 初印象
- sql计划任务+游标+事务实现不同数据库表之间数据采集
- 软考历程(7)—— 一段软考之后的剖析
- CRSD进程在11g中的变化