约瑟夫环用基础知识点来写,有几个地方不明白,希望可以有解答

                               //约瑟夫环

public class K{

public static void main(String[] args){

final int n=13,s=3,m=5;

int i=s-1,j,k=n,g=1;               //这里对于j,k的赋值是为什么,还有j,k分别代表什么?

int[] a=new int[n];                               //还有希望有人能帮忙分析一下这套代码的思路,谢谢。


for(int h=1;h<=n;h++)

a[h-1]=h;

System.out.println("\n出圈的顺序为:");

do

{  i=i+(m-1);

   while(i>=k)

    i=i-k;

    System.out.print("  "+a[i]);

    for(j=i;j<k-1;j++)

    a[j]=a[j+1];

    k--;

    g++;

                    }

while(g<=n);

}

}


kawsar
浏览 1947回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java