用JAVA编写,有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈

用JAVA编写,有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下
的是原来第几号的那位。

大致的思路:定义list集合,利用for循环添加1—n元素,利用if判断,对3取余为0的删除,查看最终输出结果。试着自己做,不懂再问
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-01-12
Scanner in=new Scanner(System.in);
System.out.print("请输入人数:");
int y=in.nextInt();
int a[]=new int [y];
for(int i=0;i<y;i++){
a[i]=i+1;
}
int flag = 1, n = 0, m = 0, j = 0;
for (int i = 0;; i++) {
if (n == a.length) {
break;
}
for (j = 0; j < a.length; j++) {
if (flag % 3 == 0 && a[j] != 0) {
a[j] = 0;
n++;
flag++;
m = j;
}
if (flag % 3 != 0 && a[j] != 0) {
flag++;
}
}
}
System.out.println("最后剩下的人是第" + (m+ 1) + "个人");
相似回答