A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
  1. public class Test9 {  
  2.     public static void main(String[] args) {  
  3.         Circle c = new Circle();  
  4.         c.exits2();  
  5.          
  6.     }

  7.         public int printArr(int[][] arr, int i, int j, int move, int num) {
  8.                 // TODO Auto-generated method stub
  9.                 return 0;
  10.         }  
  11. }  
  12.   
  13. class Circle{  
  14.     private List<Integer> queue = new ArrayList<Integer>();  //队列  
  15.       
  16.     private int maxIndex = 0;  //最大索引值  
  17.     private int currentIndex = 0; //当前索引值  
  18.       
  19.       
  20. public void exits2()  
  21.     {  
  22.          
  23.         boolean[] queue = new boolean[100];  
  24.         for(int i=0;i<queue.length;i++)  
  25.         {  
  26.             queue[i] = true;  
  27.         }  
  28.          
  29.          
  30.         int len = queue.length;  
  31.          
  32.         int count = 0;  
  33.         while(len>1)  
  34.         {  
  35.               
  36.             for(int i=0;i<queue.length;i++)  
  37.             {  
  38.                 if(queue[i]==true)  
  39.                 {  
  40.                     count++;  
  41.                     if(count == 14)  
  42.                     {  
  43.                         queue[i] = false;  
  44.                         count=0;  
  45.                           
  46.                         len--;  
  47.                     }  
  48.                 }  
  49.             }  
  50.               
  51.          
  52.               
  53.               
  54.         }  
  55.          
  56.          
  57.         for(int i=0;i<queue.length;i++)  
  58.         {  
  59.             System.out.println(i + " : " + queue[i]);  
  60.         }  
  61.     }  
  62. }  
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马