zoukankan      html  css  js  c++  java
  • 37 有n个人围成一圈,顺序排号,从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号那位.

    题目:有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 }
  • 相关阅读:
    人脸识别的一些网站
    41、过滤驱动程序
    13、ActiveX控件
    42、驱动程序调试
    20、宽字符串与字符串间的相互转换
    14、HOOK和数据库访问
    43、Windows驱动程序模型笔记(一)
    7、注册表读写的一个例子
    12、动态链接库,dll
    40、总结IRP,handling IRPs,Part II
  • 原文地址:https://www.cnblogs.com/liuyangfirst/p/6544466.html
Copyright © 2011-2022 走看看