约瑟夫环问题

奇安信2020秋招笔试题

/**
 * 约瑟夫环问题:
 * N个人排成一队,从1到5轮流报数,报5的是幸运者,出列
 * 报到队尾后,从队尾接着报,依此循环
 * 问:排在队尾的人是第几名幸运者?
 * N为小于100000的正整数
 * 例如:1人排成一队,他就是第一名幸运者
 * 3人排成一队,队尾是第二名幸运者
 * 5人排成一队,队尾是第一名幸运者
 * 8人排成一队,队尾是第三名幸运者
 *
 * 输入:队伍的总人数————20
 * 输出:队尾者的幸运编号——————4
 *
 */

package package3;

import java.util.Scanner;

/**
 * Created by fan on 2019/9/9.
 */
public class JosephRing {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入人的个数n:");
            int n = sc.nextInt();
            fun(n);
            sc.close();
        }

        private static void fun(int n) {
            boolean[] ps = new boolean[n];
            int num = 0;
            //开始都有人,初始化为true
            for (int i = 0; i < ps.length; i++) {
                ps[i] = true;
            }
            //数到5剔除
            for(int i = 0,j = 0;;i++){
                if(ps[i]){
                    j++;
                    if(j == 5){
                        if(i == (ps.length-1)){
                            num++;
                            break;
                        }
                        ps[i] = false;
                        j=0;
                        num++;
                    }
                }
                //从开始继续循环
                if(i == ps.length -1){
                    i = -1;
                }
            }
            System.out.println("排在队尾的是第" + num +"名幸运者");
        }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
2024-12-18 15:35
程序员牛肉:完全是在胡写简历。 我很好奇你干嘛要在教育经历里面写你是软件二班的班长?你写它的目的是什么?我觉得真的就是很突兀。给我第一感觉就是:你真的是一个心智健全的成年人吗? 另外我也很好奇你是怎么做到参加了这么多所谓的计算机比赛,完事儿一个拿得出手的项目都没有。 自己的项目经历还是图书馆管理系统这种垃圾东西……我的的建议是你都不如大幅度删减一下自己的水奖项,看着真的给人一种又水又学傻了的感觉。 计算机不看奖项,看院校和个人能力。 计算机是强工科,你要投后端的你就应该明白,人家招你进去是指望你干活儿的。那你觉得你这份简历有展示出你的后端水平吗? 你动动你的脑子想一想,人家面试官要想通过你的简历看出你的项目开发能力,最重要的板块就是两个,第一个是你的实习,第二个是你的项目。你没有实习,是不是就应该在项目上好好琢磨琢磨? 你自己看看你项目写的什么描述,你作为一个要后端岗位的应届生,你对你自己项目的描述还仅仅停留在使用mySQL,使用JAVA,使用spring boot框架。给人一眼感觉就感觉完全就是你做的玩具。可能就是你哪一个学期做的课设。 对于应届生来讲,在项目板块要尽量突出自己的技术能力,因为谈业务你肯定也不懂。简单来讲,你的项目要清晰准确的表达:你用哪种技术解决了现有的哪种技术问题,带来了多少的效益提升? 所有关于项目的描述都围绕我说的这种表达方式去写。不要自己自嗨式的写一堆垃圾上去 你既没有实习项目,又没有一个比较好一点的项目,而且院校也比较差,所以找工作会异常的难找。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务