约瑟夫环问题

#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;
}

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

发布了37 篇原创文章 · 获赞 1 · 访问量 4万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览