首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >用Java写约瑟夫数

用Java写约瑟夫数

作者头像
楠羽
发布于 2022-11-18 10:30:19
发布于 2022-11-18 10:30:19
1.5K0
举报
文章被收录于专栏:后端开发笔记后端开发笔记
代码语言:javascript
复制
public class Joseph_problem {
    //这是一个main方法,是程序的入口:
    public static void main(String[] args) {
        Scanner zs = new Scanner(System.in);
        //打印
        System.out.print("输入总人数:");
        int m = zs.nextInt();//
        //打印
        System.out.print("输入剔除的序号:");
        int n = zs.nextInt();
        josephus(m, n);
    }

    //判断是否为约瑟夫数,方法,传入两个参数,一个总人数,一个报数
    public static void josephus(int m, int n) {
        //创建list集合存放人数的序号
        LinkedList list = new LinkedList();
        //创建list1集合存放约瑟夫数
        LinkedList list1 = new LinkedList();
        //把序号添加到list集合中
        for (int i = 1; i <= m; i++) {
            list.add(i);
        }
        int count = 1;//报数,1开始报数
        //循环list集合是否还有元素
        while (list.size() >= 1) {
            if (count == n) {   //判断count==n时,做出记录操作
                count = 1;    //等于时就重新赋值为1
                list1.add(list.removeFirst()); //移除并返回此列表中的第一个元素,并且添加带辛几何中
                continue;
            } else {
                list.add(list.removeFirst());///把不是约瑟夫数的序号往后添加
                count++;//报数加1
            }
        }
        //打印,约瑟夫数
        System.out.print("输出的约瑟夫数是:" + list1);
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-22,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档