public static void game(int num){
//为每个人设置一个boolean值,初始为false,如果true,说明已经出局
boolean[] people= new boolean[num];
//定义位置:例如,第一个人为0,第2个人为1,第3个人为2,第n个人为n-1
int positionFlag = 0;
//设置每个人数出的数,初始为1
int count =1;
//设置出局的人的个数
int outNum = 0;
//设置当前最后一个没有出局的人的位置
int peopleWin = 0;
//开始游戏,当出局的人为总人数减1时,游戏结束
while(outNum!=num-1){
//当位置为总人数的时候,已经执行一个循环了,重返位置为0
if(positionFlag==num){
positionFlag=0;
}
//如果当前玩家的boolean值为true,说明已经出局,跳过
if(people[positionFlag]){
positionFlag++;
continue;
}
//如果当前玩家数到3,出局,设置其boolean值为true,否则设置当前最后一个没有出局的人的位置为该玩家
if(count==3){
people[positionFlag]=true;
outNum++;
}else{
peopleWin = positionFlag;
}
//执行计数规则
count = countAdd(count);
positionFlag++;
}
System.out.println("胜利:"+peopleWin);
}
public static int countAdd(int i){
if(i<3){
return i+1;
}else{
return 1;
}
}
一群人玩游戏 规则叫号 叫到3的倍数的出局 得到最后胜利者 看看吧 比较好理解要运行直接调用GAME(给个人数就好了)