一群人围成一圈从123报数,如果报到3就退出该圈中,直到最后一个人留下来!...
package com.pb.demo1;import java.util.ArrayList; import java.util.List; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern;/*** 一群人围成一圈从123报数,如果报到3就退出该圈中,直到最后一个人留下来!* 约瑟夫的游戏*/ public class Demo1 {public static void main(String[] args) {//声明值一个扫描器的变量Scanner input =new Scanner(System.in);System.out.println("请输入参数游戏的人数:");String str=input.next();//判断是不是数字String regx="\\d+";Pattern p=Pattern.compile(regx);Matcher m=p.matcher(str);int num=0;if(m.matches()){//如果是数字就转换为数字num=Integer.parseInt(str);}else{//如果不是数字终止System.out.println("输入的不是数字:结果为0");return ;}//为每个人编号List<Integer> list=new ArrayList<Integer>();for (int i = 0; i < num; i++) {//编号从一开始list.add(i+1);}//定义游戏要退出的变量int cursor=0;//开始游戏只到最后一人是结束while(list.size()>1){for (int i = 0; i <list.size(); i++) {//游戏开始游标+1cursor++;if(cursor%3==0){list.remove(i);//游标重新开始并归零cursor=0;//人数-1i--;}}}System.out.println("集合的大小:"+list.size());System.out.println("最后的人编号是:"+list.get(0));}}
转载于:https://www.cnblogs.com/liunanjava/p/4421112.html
一群人围成一圈从123报数,如果报到3就退出该圈中,直到最后一个人留下来!...相关推荐
- Java数组实现:一群人围成一圈从123报数 如果报到3就退出该圈中 直到最后一个人留下来!问其位置
题目:一群人围成一圈从123报数,如果报到3就退出该圈中,直到最后一个人留下来!问留下这个人的位置是多少? 这是一个典型的约瑟夫环问题,接下来我只用Java的数组去实现,为什么用数组我觉得数组相对来说 ...
- 一群人围成一圈报数,3倍数的就退出,面试题
这个题目指的是一群人,围成一个圈,然后一个接一个的报数,当数到3或者3的倍数时候就退出,知道最后一个人. 距离当人数为30的时候: public class CycleTest { ...
- 一群人围成一圈从123报数,如果报到3就退出该圈中,直到最后一个人留下来!
#include<stdio.h> int main() { int m,n,i,k,*p,num[50]; printf("please input join peop ...
- ACMNO.38 C语言-报数 有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
题目描述 有n人围成一圈,顺序排号. 从第1个人开始报数(从1到3报数),凡报到3的人退出圈子.`在这里插入代码片` 问最后留下的是原来的第几号的那位. 输入 初始人数n 输出 最后一人的初始编号 样 ...
- (C语言)有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
题目描述 有n人围成一圈,顺序排号.从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位. 输入 初始人数n 输出 最后一人的初始编号 样例输入 3 样例输出 2 ...
- 1056: 约瑟夫问题【n人围成一圈,报数为3的人退出圈子,问最后留下的人原来的编号。】
Description 有n人围成一圈,顺序排号.从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位. Input 初始人数n Output 最后一人的初始编号 ...
- 有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
题目描述 有n人围成一圈,顺序排号.从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位. 输入 初始人数为n. 输出 最后一个人的初始编号. 样例输入 3 样例 ...
- Java基础题——15只狮子围成一圈,依次报数,报到7被剔除,最后剩下的狮子成为狮王,求狮王为第几只?
问题如下:Java基础题--15只狮子围成一圈,依次报数,报到7被剔除,最后剩下的狮子成为狮王,求狮王为第几只? 解决问题所使用的重点:利用循环. 大体思路:每只狮子都设为true,然后循环报数,到7 ...
- 30人围成一圈的小游戏。c语言
30人按照序号1,2......30围成一圈,从第一个人开始报数,当有人喊道5的时候,这个人出去,然后下一个人从1开始报数,以此类推,直到30个人都出去了为止. main() { int i, ...
最新文章
- 初学Java Web(7)——文件的上传和下载
- 产品体验分析之7步走(附PPT)
- 2018先知白帽大会 | 议题解读
- dll侧加载_WORD打开时出现加载DLL错误解决方法
- mysql8修改密码
- 【Kafka】kafka KafkaException: Exception while loading Zookeeper JAAS login context ‘Client‘
- Android 中的冷启动和热启动
- 设计模式(7)——适配器模式
- 拓端tecdat|R语言样条曲线、泊松回归模型估计女性直肠癌患者标准化发病率(SIR)、标准化死亡率(SMR)
- 【POJ-2452】Sticks Problem【二分右端点+线段树】
- 2013.05.09
- java使用图灵机器人,Java 调用图灵机器人
- android 日历动画的实现
- 【论文阅读】强化学习-Other Directions for Combining Policy-Learning and Q-Learning专题4篇
- 为什么mac Safari提示:打不开该网页,因为无法与服务器建立安全的链接?
- 【地图学】地图投影的定义和分类
- IIS服务器开启https
- 一个u盘大小的树莓派就能搭建一个服务器
- 淘宝开店指南——店铺设置篇
- swagger添加@ApiImplicitParams后出现错误 Required String parameter is not present