package cn.itcast.demo;
import java.util.ArrayList;
public class Demo33 {
/**
* @param args
* 假如是8个人 每数三下就杀一个人 ,这就是杀人游戏约瑟夫环吧 。
*/
public static void main(String[] args) {
int num = getLuklyNum(8);
System.out.println("最后剩下的数字是"+num);//7
}
private static Integer getLuklyNum(int num) {
int count = 1; //计数器
ArrayList<Integer> list = new ArrayList<>();
for (int i = 1; i <=num; i++) { //将数字12345678存入集合
list.add(i);
}
for (int i = 0;list.size()!=1; i++) { //从0索引开始遍历集合 当 索引为8的时候重新从0开始
if(i==list.size())
i=0;
if(count%3==0) //数3下就要 移除一个元素,索引需--这样才保证每个数字都能 数到
list.remove(i--);
count++;
}
return list.get(0); //返回最后剩下的那个 就是0索引的数字 既是存活下来的人
}
}
|