50,530
社区成员
发帖
与我相关
我的任务
分享
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) throws Exception {
Test.count(2);//测一下无效的输入
Test.count(100);//测100个人
}
public static void count(int num) {
if (num <= 2) {
System.out.printf("输入人数错误:%d\n", num);
return;
}
//初始化一个List数组,从1开始分配编号
List<Integer> list = new ArrayList<Integer>(num);
for (int i = 1; i <= num; i++) {
list.add(i);
}
//开始数数
int counter = 1, pos = 0, size = list.size();
while (size > 2) {
if (counter == 3) {
list.remove(pos);
size = list.size();
pos--;
}
if (++pos == size) {
pos = 0;
}
if (++counter > 3) {
counter = 1;
}
}
//打印最后剩下两人的初始编号
System.out.println("最后两个人的编号是:" + list.toString());
}
}