如下题目:有 n 个人围成一圈,顺序排号。从第一个人开始报数(从 1 到 3 报数),凡报到 3的人退出圈子,问最后留下的是原来第几号的那位?请用java语言写出代码
时间: 2023-12-23 18:48:34 浏览: 102
以下是 Java 代码实现:
```java
import java.util.*;
public class CircleGame {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入总人数:");
int n = sc.nextInt();
List<Integer> circle = new ArrayList<>();
for (int i = 1; i <= n; i++) {
circle.add(i);
}
int count = 0;
while (circle.size() > 1) {
for (int i = 0; i < circle.size(); i++) {
count++;
if (count == 3) {
circle.remove(i);
count = 0;
i--;
}
}
}
System.out.println("最后留下的是原来第" + circle.get(0) + "号的那位。");
}
}
```
其中,使用 `List` 来表示围成一圈的人,每个人的编号从 1 到 n。然后,使用循环遍历整个围圈,每个人报数,当报到 3 时,将该人从围圈中移除。最后,当围圈中只剩下一个人时,输出该人的编号即可。
阅读全文