用Java编写约瑟夫环问题求解
时间: 2024-05-14 22:17:14 浏览: 93
好的,约瑟夫环问题是一个经典的数学问题,可以用Java编写程序求解。以下是一个简单的实现:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class JosephusProblem {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入参与游戏的人数:");
int n = scanner.nextInt();
System.out.println("请输入要报数的数字:");
int m = scanner.nextInt();
List<Integer> list = new ArrayList<>();
for (int i = 1; i <= n; i++) {
list.add(i);
}
int k = 0; // 计数器
while (list.size() > 1) {
k = (k + m - 1) % list.size();
System.out.println("出局的人是:" + list.get(k));
list.remove(k);
}
System.out.println("胜利者是:" + list.get(0));
}
}
```
程序首先从控制台读取参与游戏的人数和报数的数字,然后用List来表示参与游戏的人。接着进入循环,每次循环计算下一个出局的人的索引,然后将其从List中移除。最后,当List中只剩一个人时,输出胜利者的编号即可。
希望以上代码能够帮到你。
阅读全文