黑马程序员技术交流社区

标题: 报道3的人退出圈子 [打印本页]

作者: 涵門子弟    时间: 2015-12-5 00:05
标题: 报道3的人退出圈子

  1. package wzs.arithmetics;

  2. import java.util.Scanner;

  3. //题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
  4. public class Test_wzs29
  5. {
  6.     public static void main(String[] args)
  7.     {

  8.         System.out.println("请输入人数:");
  9.         Scanner input = new Scanner(System.in);
  10.         int member = input.nextInt(); // 总人数

  11.         int surplus = member; // 剩余人数
  12.         int count = 0;// 报数器
  13.         int index = 0;// 下表索引

  14.         boolean[] array = new boolean[member];// 围成的圈
  15.         for (int i = 0; i < array.length; i++)
  16.         {
  17.             array[i] = true;// true表示人还在圈内
  18.         }

  19.         // 当剩余人数大于1
  20.         while (surplus > 1)
  21.         {
  22.             if (array[index] == true)
  23.             {
  24.                 count++;
  25.                 // 数到3的人
  26.                 if (count == 3)
  27.                 {
  28.                     array[index] = false;
  29.                     surplus--;
  30.                     count = 0;
  31.                 }
  32.             }
  33.             index++;
  34.             // 当下标等于总人数
  35.             if (index == member)
  36.             {
  37.                 // 重新开始数
  38.                 index = 0;
  39.             }
  40.         }

  41.         for (int i = 0; i < array.length; i++)
  42.         {
  43.             if (array[i] == true)
  44.             {
  45.                 System.out.println("剩余的人是:" + i);
  46.             }
  47.         }
  48.     }
复制代码


作者: 涵門子弟    时间: 2015-12-5 00:06
希望大家多多交流!!!!!!!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2