码迷,mamicode.com
首页 > 编程语言 > 详细

Java经典编程题50道之三十七

时间:2017-06-08 14:51:48      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:++   bsp   system   --   als   ==   ring   public   str   

有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) + "位的人留下了。");
            }
        }
    }
}

Java经典编程题50道之三十七

标签:++   bsp   system   --   als   ==   ring   public   str   

原文地址:http://www.cnblogs.com/qubo520/p/6962539.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!