zoukankan      html  css  js  c++  java
  • Java经典编程题50道之三十七

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

    public class Example37 {

        public static void main(String[] args) {
            f(1000);
        }
        public static void f(int n) {
            boolean[] arr = new boolean[n];
            for (int i = 0; i < arr.length; i++) {
                arr[i] = true;
            }
            int leftCount = n;
            int countNum = 0;
            int index = 0;
            while (leftCount > 1) {
                if (arr[index] == true) {
                    countNum++;
                    if (countNum == 3) {
                        countNum = 0;
                        arr[index] = false;
                        leftCount--;
                    }
                }
                index++;
                if (index == n) {
                    index = 0;
                }
            }
            for (int i = 0; i < n; i++) {
                if (arr[i] == true) {
                    System.out.println("原排在第" + (i + 1) + "位的人留下了。");
                }
            }
        }
    }

  • 相关阅读:
    100722B
    6-排列
    5-分西瓜差最小(背包 || dfs)
    4-计算九位数以内各个位数字和为s的种类
    3-计算01串
    2-计算星期几(基姆拉尔森计算公式)
    1-作业题构成单调曲线的点数最多
    12-分苹果(递归)
    11-砝码分配(利用3进制)
    10-约瑟夫环的几种解法
  • 原文地址:https://www.cnblogs.com/qubo520/p/6962539.html
Copyright © 2011-2022 走看看