题目 1047: [编程入门]报数问题
时间限制: 1Sec 内存限制: 128MB
题目描述
有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
输入
初始人数n
输出
最后一人的初始编号
样例输入
3
样例输出
2
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
ArrayList list=new ArrayList();
for(int i=1;i<=n;i++) {
list.add(i);
}
int count=1;
int index=0;
while(list.size()!=1) {
if(index==list.size()) {
index=0;
}
if(count%3==0) {
list.remove(index);
index--;
}
count++;
index++;
}
System.out.println(list.get(0));
}
}