📄 josephus-josephus.html
字号:
<html><head><title>Code Fragment</title></head><body text=#000000><center></center><br><br><dl><dd><pre><font color=#ff8000>import</font> net.datastructures.*;<font color=#8000a0>public</font> <font color=#8000a0><font color=#ff8000>class</font> </font>Josephus { <font color = #ff0080>/** Solution of the Josephus problem using a queue. */</font> <font color=#8000a0><font color=#8000a0>public</font> </font><font color=#8000a0>static</font> <E> <font color=#8000a0>E </font><font color=#0000ff>Josephus</font>(Queue<E> Q, <font color=#8000a0><font color=#8000a0>int</font> </font>k) { <font color=#ff8000>if</font><font color=#0000ff> </font>(Q.<font color=#0000ff>isEmpty</font>()) <font color=#8000a0><font color=#ff8000>return</font> </font>null; <font color=#ff8000>while</font><font color=#0000ff> </font>(Q.<font color=#0000ff>size</font>() > 1) { System.out.<font color=#0000ff>println</font>(<font color=#008000>" Queue: "</font> + Q + <font color=#008000>" k = "</font> + k); <font color=#ff8000>for</font><font color=#0000ff> </font>(<font color=#8000a0>int</font> i=0; i < k; i++) Q.<font color=#0000ff>enqueue</font>(Q.<font color=#0000ff>dequeue</font>()); <font color=#ff0080>// move the front element to the end</font> <font color=#8000a0>E </font>e = Q.<font color=#0000ff>dequeue</font>(); <font color=#ff0080>// remove the front element from the collection </font> System.out.<font color=#0000ff>println</font>(<font color=#008000>" "</font> + e + <font color=#008000>" is out"</font>); } <font color=#8000a0><font color=#ff8000>return</font> </font>Q.<font color=#0000ff>dequeue</font>(); <font color=#ff0080>// the winner</font> } <font color = #ff0080>/** Build a queue from an array of objects */</font> <font color=#8000a0><font color=#8000a0>public</font> </font><font color=#8000a0>static</font> <E> Queue<E> <font color=#0000ff>buildQueue</font>(E a[]) { Queue<E> Q = <font color=#8000a0><font color=#ff8000>new</font> </font>NodeQueue<E><font color=#0000ff></font>(); <font color=#ff8000>for</font><font color=#0000ff> </font>(<font color=#8000a0>int</font> i=0; i<a.length; i++) Q.<font color=#0000ff>enqueue</font>(a[i]); <font color=#8000a0><font color=#ff8000>return</font> </font>Q; } <font color = #ff0080>/** Tester method */</font> <font color=#8000a0><font color=#8000a0>public</font> </font><font color=#8000a0>static</font> <font color=#8000a0><font color=#8000a0>void</font> </font><font color=#0000ff>main</font>(<font color=#8000a0>String</font>[] args) { <font color=#8000a0>String</font>[] a1 = {<font color=#008000>"Alice"</font>, <font color=#008000>"Bob"</font>, <font color=#008000>"Cindy"</font>, <font color=#008000>"Doug"</font>, <font color=#008000>"Ed"</font>, <font color=#008000>"Fred"</font>}; <font color=#8000a0>String</font>[] a2 = {<font color=#008000>"Gene"</font>, <font color=#008000>"Hope"</font>, <font color=#008000>"Irene"</font>, <font color=#008000>"Jack"</font>, <font color=#008000>"Kim"</font>, <font color=#008000>"Lance"</font>}; <font color=#8000a0>String</font>[] a3 = {<font color=#008000>"Mike"</font>, <font color=#008000>"Roberto"</font>}; System.out.<font color=#0000ff>println</font>(<font color=#008000>"First winner is "</font> + <font color=#0000ff>Josephus</font>(<font color=#0000ff>buildQueue</font>(a1), 3)); System.out.<font color=#0000ff>println</font>(<font color=#008000>"Second winner is "</font> + <font color=#0000ff>Josephus</font>(<font color=#0000ff>buildQueue</font>(a2), 10)); System.out.<font color=#0000ff>println</font>(<font color=#008000>"Third winner is "</font> + <font color=#0000ff>Josephus</font>(<font color=#0000ff>buildQueue</font>(a3), 7)); }}</dl></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -