约瑟夫问题

来源:互联网 发布:k线图 蜡烛图源码 编辑:程序博客网 时间:2024/04/28 19:15

void WhileOut(int i)

{

    cout<<i<<endl;

}

int Foo(int const  iStep,int const  N)

//N总共人数,iStep为步进个数

{  

    bool* ppArray=new bool[N];

    memset(ppArray,0,N);

    int iLeave=N;

    int iPos=0;

    while (iLeave>1)

    {     

       for (int i=0;i<iStep;)

       {  

           if (!ppArray[iPos])

           {

              i++;

           }

           iPos=(iPos+1)%N;

       }

       ppArray[(iPos+N-1)%N]=true;

       WhileOut((iPos+N-1)%N);

       --iLeave;

    }

    for (int i=0;ppArray[i];++i){}

    delete []ppArray;

    return i;

 

}

 
原创粉丝点击