洛谷 P1996 约瑟夫问题
题目描述
n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,……依次类推,直到所有的人都出圈,请输出依次出圈人的编号.
分析
猴子选大王,大家都会,就不多说了
#include <iostream>
#include <cstdio>
int i,j,n,n1,m,a[1000];
int main()
{
scanf("%d%d",&n,&m);
n1=n;
while (n!=0)
{
j=0;
while (j!=m)
{
i++;
if (i>n1) i=1;
if (a[i]==0) j++;
}
a[i]=1;
n--;
printf("%d ",i);
}
return(0);
}