您的位置:首页 > 其它

n个人围成一圈,从第1个人开始数数,数到3的人出圈,输出出圈人的顺序

2013-11-01 20:46 393 查看
public class LastMan {
public static void main(String[] args){
while(true){
gameStart();
}
}
private static void gameStart(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入总人数:");
System.out.println("给出一个正整数");
String string =sc.next();
String regex = "\\d+";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(string);
if(!m.find()){
System.out.println("输入的不是整数");
return;
}
int n=Integer.parseInt(string);
if(n<=0){
System.out.println("输入的人数不正确!");
return;
}
int leftCount = n-1;
int count =1;
int index=0;
boolean[] ba = new boolean
;
for(int i=0;i<ba.length;i++){
ba[i] = true;
}

while(leftCount>0){
if(ba[index] == true){
if((count%3) == 0){
ba[index]=false;
leftCount--;
System.out.println("第("+(index+1)+")个人被去除!");
}
count++;
}
index++;
if(index%n==0){
index = 0;
}
}
for(int i=0;i<n;i++){
if(ba[i]){
System.out.println("最后留下的是第("+(i+1)+")个人!");
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: