约瑟夫环

来源:互联网 发布:mac 如何查看隐藏文件 编辑:程序博客网 时间:2024/05/29 16:20
#include<bits/stdc++.h>#define maxn 50using namespace std; bool in[maxn];//int a[maxn];queue<int> q;int c[maxn],t[maxn];int main(){    memset(in,0,sizeof(in));    int i,j,k,m,n,code,*p;    printf("请输入总人数和初始密码:");    scanf("%d%d",&n,&code);    p=c;    for(i=0;i<n;i++)     {        *(p+i)=i+1;        printf("第%d个人密码:",i+1);        scanf("%d",&t[i]);//t[i]中存密码     }    i=0;     j=0;    k=0;//k代表报出号码数     m=0;//m代表退出的人数     while(m<n)    {        if(!in[i])            k++;        if(k==code)        {            //a[j]=(*(p+i));//退出则保存             q.push(*(p+i));//退出则入队             in[i]=1;//设入队标志             k=0;            m++;            j++;            code=t[i];            code=code%n?code%n:n;//减少循环次数          }         i++;        if(i==n)//每一个in[i]都判断             i=0;    }    printf("出列顺序为:");     for(i=0;i<j;i++)    {         //printf("%d ",a[i]);        printf("%d ",q.front());        q.pop();    }    system( "PAUSE ");     return 0;} 
0 0
原创粉丝点击