首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >经典笔试题-编程题:设有n个人依围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到所有的人全部出列

经典笔试题-编程题:设有n个人依围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到所有的人全部出列

作者头像
cwl_java
发布于 2022-11-29 08:30:18
发布于 2022-11-29 08:30:18
6220
举报
文章被收录于专栏:cwl_Javacwl_Java
代码语言:javascript
复制
    private static boolean same(int[] p,int l,int n){
        for(int i=0;i<l;i++){
            if(p[i]==n){
                return true;
            }
        }
        return false;
    }
    public static void play(int playerNum, int step){
        int[] p=new int[playerNum];
        int counter = 1;
        while(true){
            if(counter > playerNum*step){
                break;
            }
            for(int i=1;i<playerNum+1;i++){
                while(true){
                    if(same(p,playerNum,i)==false) break;
                    else i=i+1;
                }
                if(i > playerNum)break;
                if(counter%step==0){
                    System.out.print(i + " ");
                    p[counter/step-1]=i;
                }
                counter+=1;
            }
        }
        System.out.println();
    }
    public static void main(String[] args) {
        play(10, 7);
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-11-23,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档