用java代码实现:有n个人围成一圈顺序排号。从第一个人开始报数凡报到3的人退出圈子(重复从1到3报 数),问最后留下的是原来第几号的那位
时间: 2023-06-07 18:09:13 浏览: 120
有N个人围成一环形圈,第一个人从1开始报数,报道M的人出列,直到最后一个同学,请写出算法。.txt
好的,这个问题属于技术问题。以下是Java代码实现:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入 n:");
int n = sc.nextInt();
List<Integer> list = new ArrayList<>();
for (int i = 1; i <= n; i++) {
list.add(i);
}
int count = 0;
while (list.size() > 1) {
for (int i = 0; i < list.size(); i++) {
count++;
if (count % 3 == 0) {
list.remove(i);
i--;
}
}
}
System.out.println("最后留下的是原来第" + list.get(0) + "号的那位。");
}
}
```
输入 n 后,程序会生成一个从 1 到 n 的数列,然后开始报数。每报到 3 的时候,对应的数字就从数列中移除。当数列中只剩下一位数字时,输出最后留下的数字即可。
阅读全文