约瑟夫环问题:设有n个人围坐一圈,并按顺时针方向1~n编号。从第s个人开始进行报数,报数到第m个人,此人出圈,再从他的下一个人重新开始从1到m的报数进行下去,直到所有的人都出圈为止。 void Josef(int A[],int n,int s,i

admin2014-12-25  25

问题 约瑟夫环问题:设有n个人围坐一圈,并按顺时针方向1~n编号。从第s个人开始进行报数,报数到第m个人,此人出圈,再从他的下一个人重新开始从1到m的报数进行下去,直到所有的人都出圈为止。
    void Josef(int A[],int n,int s,int m)
    {
    for(i=1;i<=n;i++)
    A=i;
    sl=s:
    for(i=n;i>=2;i一一)
    {  s1=______;    /*计算出圈人s1*/
    if(s1==0)______;
    W=A[s1];    /*A[s1]出圈*/
    for(j=_____)
    A[j]=A[j+1];
    A=w;
    }
    print f(“出圈序列为:”);    /*输出出圈序列*/
    for(i=n;i>=1;i一一)
    print f(“%d”,A);
    print f(“n”);
    }

选项

答案(s1+m一1)%m s1=i j=s1; j
解析
转载请注明原文地址:https://kaotiyun.com/show/84Vx777K
0

最新回复(0)