你的位置:首页 > 软件开发 > Java > 一群人围成一圈从123报数,如果报到3就退出该圈中,直到最后一个人留下来!

一群人围成一圈从123报数,如果报到3就退出该圈中,直到最后一个人留下来!

发布时间:2015-04-13 04:00:27
package com.pb.demo1;import java.util.ArrayList;import java.util.List;import java.util.Scanner;import java.util.regex.Matcher;import java.ut ...

 

 

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++) {        //游戏开始游标+1        cursor++;        if(cursor%3==0){          list.remove(i);          //游标重新开始并归零          cursor=0;          //人数-1          i--;        }              }    }    System.out.println("集合的大小:"+list.size());    System.out.println("最后的人编号是:"+list.get(0));  }}

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:一群人围成一圈从123报数,如果报到3就退出该圈中,直到最后一个人留下来!

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录