dabocaiqq 2023-07-25 20:34 采纳率: 52.1%
浏览 1
已结题

Java语言怎么编写约瑟夫环的问题

Java语言怎么约瑟夫环的问题,使用循环出现错误的原因?不同于标准的数字,这个约瑟夫为什么实现不行了?难道不是都是变量的问题么

  • 写回答

3条回答 默认 最新

  • 全栈若城 新星创作者: 编程技术技术领域 2023-07-25 21:23
    关注

    思路明确
    约瑟夫环是一个经典的数学问题,描述了如何在固定数量的人围成一圈的情况下,依次报数并按规则淘汰人,直到最后剩下一人
    效果如图

    img


    代码如下:

    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);
        }
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月2日
  • 已采纳回答 7月25日
  • 修改了问题 7月25日
  • 修改了问题 7月25日
  • 展开全部