A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© pathnet 中级黑马   /  2015-7-16 23:17  /  640 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位
public static voidmain(String[] args){
        System.out.print("请输入一个整数:");
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        scan.close();
        //定义数组变量标识某人是否还在圈内
        boolean[] isIn = new boolean[n];
        for(int i=0;i<isIn.length;i++)
         isIn = true;
        //定义圈内人数、报数、索引
        int inCount = n;
        int countNum = 0;
        int index = 0;
        while(inCount>1){
            if(isIn[index]){
                countNum++;
                if(countNum==3){
                    countNum = 0;
                    isIn[index] = false;
                    inCount--;
                }
            }
            index++;
            if(index==n)
             index = 0;
        }
        for(int i=0;i<n;i++)
         if(isIn)
           System.out.println("留下的是:"+(i+1));
    }

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马