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

//约瑟夫问题,可以了解到有关环形数组的遍历方法
#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(" ");
}
return 0;
}

原文地址:https://www.cnblogs.com/wang-ya-wei/p/5561400.html