Java语言怎么约瑟夫环的问题,使用循环出现错误的原因?不同于标准的数字,这个约瑟夫为什么实现不行了?难道不是都是变量的问题么
3条回答 默认 最新
关注思路明确
约瑟夫环是一个经典的数学问题,描述了如何在固定数量的人围成一圈的情况下,依次报数并按规则淘汰人,直到最后剩下一人
效果如图
代码如下:import java.util.ArrayList; import java.util.List; public class JosephusProblem { public static int josephus(int n, int k) { List<Integer> people = new ArrayList<>(); for (int i = 1; i <= n; i++) { people.add(i); } int index = 0; while (people.size() > 1) { index = (index + k - 1) % people.size(); people.remove(index); } return people.get(0); } public static void main(String[] args) { int n = 7; int k = 3; int survivor = josephus(n, k); System.out.println("幸存者是: " + survivor); } }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报