码迷,mamicode.com
首页 > 其他好文 > 详细

约瑟夫环

时间:2018-08-11 23:18:37      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:++   循环   can   计数   false   eof   约瑟夫   ring   cstring   

#include<cstdio>
#include<cstring>
using namespace std;
bool a[1001];
int main()
{
    memset(a,0,sizeof(a));
    int m,n,out=0,p=0,num=0;
    scanf("%d%d",&m,&n);
    while(out!=m)    //循环条件:出圈人数不等于m(即人没都出圈) 
    {
        ++p;    //模拟每一个位置 
        if(p==m+1) p=1;  //将线性问题转为圈型(技巧★★★) 
        if(a[p]==false) num++; //没出圈,就报数 
        if(num==n) //报数满时 
        {
            a[p]=true;  //出圈 
            num=0;   //计数器清0 
            out++;  //出圈数加一 
            printf("%-3d",p);
        }
    }
}

 

约瑟夫环

标签:++   循环   can   计数   false   eof   约瑟夫   ring   cstring   

原文地址:https://www.cnblogs.com/czy0130/p/9461415.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!