用java编写约瑟夫(Joseph)环的代码
时间: 2024-02-24 19:53:03 浏览: 88
利用java写的约瑟夫环
好的,以下是用Java编写约瑟夫环的代码示例:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class JosephCircle {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入总人数:");
int n = scanner.nextInt();
System.out.print("请输入报数的值:");
int m = scanner.nextInt();
List<Integer> circle = generateCircle(n);
int index = 0;
while (circle.size() > 1) {
index = (index + m - 1) % circle.size();
System.out.println("出圈的人的编号为:" + circle.remove(index));
}
System.out.println("剩下的人的编号为:" + circle.get(0));
}
/**
* 生成初始的约瑟夫环
*
* @param n 总人数
* @return 约瑟夫环的列表
*/
private static List<Integer> generateCircle(int n) {
List<Integer> circle = new ArrayList<>();
for (int i = 1; i <= n; i++) {
circle.add(i);
}
return circle;
}
}
```
这个程序通过 `generateCircle` 方法生成初始的约瑟夫环,然后按照题目要求进行模拟,最终输出结果。你可以在命令行或者其他 Java IDE 中运行该程序,根据提示输入总人数和报数的值,就可以得到答案了。
阅读全文