JAVA面试题-国王杀100个和尚

本文最后更新于2023.06.26-23:48,某些文章具有时效性,若有错误或已失效,请在下方留言或联系涛哥

题目

国王杀100和尚,和尚编号从1-100,和尚从1数到5就把这个和尚杀掉,以此类推,最后只有一个和尚活着,请问这个和尚编号为多少?

代码

       List list = new ArrayList();
        for (int i = 1; i <= 100; i++) {
            list.add(i);
        }
        // 1-5 计数
        int i = 1;
        // 算法结束,只剩下一人
        while (list.size() > 1) {
            for (int j = 0; j < list.size(); j++) {
                // 数到5 杀掉
                if (i == 5) {
                    list.remove(j);
                    // 移除元素后队列长度变短,索引-1
                    j--;
                    if (i > list.size()) {
                        i = 1;
                        break;
                    }
                    // 初始为 1= 1;所以在i++前设置i = 0
                    i = 0;
                }
                // 数数 ++1
                i++;
            }
        }
        System.out.println("幸运儿:"+list.get(0));

结果

幸运儿:79
上一篇 Vue三级路由不跳转解决方案以及动态路由
下一篇 编程语言和常用导航
距离活动开始
--
:
--
:
--
:
--
00 : 00 : 00
2026430星期四

今日时光

00 : 00 :00
已过 0 剩余 0
0%
目录
涛哥

涛哥管理员

一名95后Java全栈开发程序员,95后技术分享博主,致力于技术分享和个人项目创作

本月创作热力图