Java面试宝典_基础编程练习题_报数游戏
题目题目:有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
很赞哦! (
)