算法Sedgewick第四版-第1章基础-017一约瑟夫问题(Josephus Problem)

 

 1 /*************************************************************************
 2  * 
 3  *  Josephus problem
 4  *  
 5  *  % java Ex_1_3_37 7 2
 6  *  1 3 5 0 4 2 6
 7  *  
 8  *************************************************************************/
 9 
10 public class Ex_1_3_37
11 {
12     public static void main(String[] args)
13     {
14         int n = Integer.parseInt(args[0]),
15             m = Integer.parseInt(args[1]);
16         
17         Queue<Integer> q = new Queue<Integer>();
18         for (int i = 0; i < n; i++)
19             q.enqueue(new Integer(i));
20         
21         int k = 0;
22         while (!q.isEmpty())
23         {
24             int x = q.dequeue();
25             
26             if (++k % m == 0)
27                 StdOut.print(x + " ");
28             else
29                 q.enqueue(x);
30         }
31         StdOut.println();
32     }
33 }

 

posted @ 2016-04-19 18:01  shamgod  阅读(250)  评论(0编辑  收藏  举报
haha