Below is the syntax highlighted version of Josephus.java
from §1.3 Stacks and Queues.
/****************************************************************************** * Compilation: javac Josephus.java * Execution: java Josephus m n * Dependencies: Queue.java * * Solves the Josephus problem. * * % java Josephus 2 7 * 1 3 5 0 4 2 6 * ******************************************************************************/ public class Josephus { public static void main(String[] args) { int m = Integer.parseInt(args[0]); int n = Integer.parseInt(args[1]); // initialize the queue Queue<Integer> queue = new Queue<Integer>(); for (int i = 0; i < n; i++) queue.enqueue(i); while (!queue.isEmpty()) { for (int i = 0; i < m-1; i++) queue.enqueue(queue.dequeue()); StdOut.print(queue.dequeue() + " "); } StdOut.println(); } }