架构师

您现在的位置是:首页 > 工作面试 > 初级面试

初级面试

Java面试宝典_基础编程练习题_报数游戏

架构师小跟班 2019-07-12初级面试
题目题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。代码/** * @author :xy.hero@qq.com * @date :Created

题目

题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

代码

/**
 * @author :xy.hero@qq.com
 * @date :Created in 2019-07-12 13:13
 * @description:www.jiagou1216.com
 * @modified By:
 * @version: $
 */
public class Test {
    public static void main(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[i] = 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[i])
                System.out.println("留下的是:" + (i + 1));
    }
}

输出

请输入一个整数:10
留下的是:4

文章评论