约瑟夫环·

约瑟夫环
Input 
7 5(有几组数据)
10 4 11 4 1(从一开始去除谁)
Output 
4 2 5 6 1 
Input 
3 2
2 5
Output 
3 2 


 

#include <iostream>
#include <cstdio>
#include <queue>
using namespace std;
#include <stdio.h>
#include <string.h>
deque <int> str;
int main()
{
    int m,n,i,a[102],b[102],j,g;
    scanf("%d%d",&m,&n);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    for(i=1;i<=m;i++)
        str.push_back(i);
    int e=0,h,p=0;
    for(i=0;i<n;i++)
    {
        p=str.size();
        a[i]=a[i]%p;
        memset(b,0,sizeof(b));
        for(j=0;j<=a[i]-1;j++)
        {
            b[j]=str.front();
            str.pop_front();
            str.push_back(b[j]);
        }
        g=str.front();
        str.pop_front();
        if(e==0)
            printf("%d",g),e++;
        else
            printf(" %d",g),e++;
    }
    return 0;
}

 

posted @ 2018-03-27 15:44  ~~zcy  阅读(60)  评论(0编辑  收藏  举报