josephus1.java

来自「java的经典example——在java中用链表解决约瑟夫环问题~」· Java 代码 · 共 40 行

JAVA
40
字号
public class Josephus1
{

    public static void main(String args[])
    {
        Josephus1 J1;
		J1=new Josephus1();
		J1.display(5,1,2);
    }

    public void display(int N, int S, int D)
    {
        final int NULL = 0;
        LinearList1 ring1 = new LinearList1(N);
        int i, j, k;
        for (i = 1; i <= N; i++)
            ring1.insert(i);
        i = S - 1; 
        k = N;
        while (k > 1)
        {
            j = 0;
            while (j < D)
            {
                i = i % N + 1; 
                if (ring1.get(i) != NULL)
                    j++; 
            }
            System.out.println("out :  " + ring1.get(i));
            ring1.set(i, NULL); 
            k--;
        }
        i = 1;
        while (i <= N && ring1.get(i) == NULL)
            i++;
        System.out.println("The final person is " + ring1.get(i));
    }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?