问题描述:有若干个人,环成一圈开始报数,从1数起,数到某个数字就枪毙一个,然后继续从1数起,直到留下最后一个幸运儿,求这个幸运儿的序号。
public static void main(String[] args) {
System.out.println(lucky(8)); //假设有8个人
}
public static int lucky(int num) {
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i =1; i<=num;i++) {
list.add(i);
}
int count = 1;
for (int i = 0; list.size() != 1; i++) {
if (i == list.size()) {
i = 0; //循环进行
}
if (count %3 == 0) { //假设数到3就枪毙
list.remove(i--);
}
count++;
}
return list.get(0);
}