美文网首页基础练习题
37 有n个人围成一圈,顺序排号,从第一个人开始报数(从1到3

37 有n个人围成一圈,顺序排号,从第一个人开始报数(从1到3

作者: 北极的大企鹅 | 来源:发表于2023-10-24 00:40 被阅读0次

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


 1     public class _037NumberOff {
 2 
 3     public static void main(String[] args) {
 4         numberOff();
 5     }
 6 
 7     private static void numberOff() {
 8         Scanner scanner = new Scanner(System.in);
 9         System.out.println("请输入排成一圈的人数: ");
10         int n = scanner.nextInt();
11         fun(n);
12         scanner.close();
13     }
14 
15     private static void fun(int n) {
16 
17         boolean[] arr = new boolean[n];
18 
19         int countNum = arr.length;
20 
21         // 开始都有人,初始化为true
22         for (int i = 0; i < arr.length; i++) {
23             arr[i] = true;
24         }
25 
26         // 数到3去除
27         for (int i = 0, j = 0;; i++) {
28             if (arr[i]) {
29                 j++;
30                 if (j == 3) {
31                     arr[i] = false;
32                     j = 0;
33                     // 删除一人
34                     countNum--;
35                 }
36             }
37 
38             //
39             if (i == arr.length - 1) {
40                 i = -1;
41             }
42 
43             if (countNum == 1) {
44                 break;
45             }
46         }
47 
48         for (int i = 0; i < arr.length; i++) {
49 
50             if (arr[i]) {
51                 System.out.println("原排在第" + (i + 1) + "位的人留下了.");
52 
53             }
54         }
55     }
56 }

相关文章

  • 【习题37】

    【程序37】题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下...

  • 算法笔记_06:蓝桥杯练习 筛选号码

    1. 问题描述 问题描述有n个人围成一圈,顺序排号(编号为1到n)。从第1个人开始报数(从1到3报数),凡报到3的...

  • 数 3 游戏 2

    题目 有 n 个人围成一圈,顺序排号。从第一个人开始报数(从 1 到 3 报数),凡报到 3 的人退出圈子,问最后...

  • 数 3 游戏 1

    题目 有 n 个人围成一圈,顺序排号。从第一个人开始报数(从 1 到 3 报数),凡报到 3 的人退出圈子,问最后...

  • 蓝桥杯算法训练-筛选号码问题(Java语言)

    描述 有n个人围成一圈,顺序排号(编号为1到n)。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子。从下一...

  • Rust语言编程实例100题-069

    Rust语言编程实例100题-069 题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到...

  • 3个月熟练使用python--Day2打卡

    1、约瑟夫环问题 问题:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最...

  • 7.29打卡

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

  • 题解:报数问题(C++描述)

    题目相关 题目描述 有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下...

  • 【Java编程基本功】(十一)求最大红玫瑰数,求最后剩下的人,根

    第三十四题 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原...

网友评论

    本文标题:37 有n个人围成一圈,顺序排号,从第一个人开始报数(从1到3

    本文链接:https://www.haomeiwen.com/subject/canvbdtx.html