有关环形数组的约瑟夫问题

//约瑟夫问题,可以了解到有关环形数组的遍历方法
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
int a[100];
int main()
{
int n,m,count,d,i;
while(cin>>n>>m)
{
for(int i=0;i<n;i++)
a[i]=i+1;
count=0;
i=-1;
while(count<n)//有关环形数组的遍历方法
{
d=0;
while(d<m)
{
i=(i+1)%n;
if(a[i]!=0)
d++;
}
printf("%d ",a[i]);
a[i]=0;
count++;
}
printf("\n");
}
return 0;
}

posted @ 2016-06-05 18:53  Wally的博客  阅读(111)  评论(0编辑  收藏  举报