约瑟夫环问题

来源:互联网 发布:重庆市云计算产业协会 编辑:程序博客网 时间:2024/05/17 06:44

#include<iostream>
using namespace std;
int main()           
{
    int n,start,offset,i=0,count=0;;
    cout<<"总数,开始数,偏移数!"<<endl;
    cin>>n>>start>>offset;
    int *persons=new int[n];
    for(int i=0;i<n;i++)persons[i]=0;
    start--;
    while(1)
    {
        if(persons[start])start=(start+1)%n;
        else
        { 
            cout<<"第"<<start+1<<"个出局"<<endl;
            count++;
            if(count==n)break;
            persons[start]=1;
            while(i!=offset)if(!persons[start=(start+1)%n])++i;
            i=0;
        }
    }
    system("PAUSE");
    return 0;
}

数组实现.....链表实现的,改天补上.