java编写约瑟夫环
时间: 2023-09-28 11:03:46 浏览: 61
约瑟夫环是一个经典的问题,可以通过 Java 来实现。下面是一个简单的实现示例:
```java
import java.util.ArrayList;
import java.util.List;
public class JosephusCircle {
public static void main(String[] args) {
int n = 7; // 总人数
int k = 3; // 报数为 3 的出队
List<Integer> list = new ArrayList<Integer>();
for (int i = 1; i <= n; i++) {
list.add(i);
}
int index = 0;
while (list.size() > 1) {
index = (index + k - 1) % list.size(); // 计算出队的下标
System.out.println("出队:" + list.remove(index)); // 删除出队的人并输出
}
System.out.println("胜利者:" + list.get(0)); // 剩下的那个人即为胜利者
}
}
```
在上面的代码中,我们首先创建了一个包含从 1 到 n 的整数的列表。然后,我们使用一个循环来模拟报数的过程,每次报数为 k 的人出队,直到只剩下一个人为止。最后,我们输出剩下的那个人,即为胜利者。
需要注意的是,由于列表中的下标是从 0 开始的,因此在计算出队的下标时需要使用取模运算。
阅读全文