题目地址:点击打开链接
思路:约瑟夫环的简单应用,模拟即可
AC代码:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int visit[150];
int main()
{
int i,n,m,k,sum;
while(scanf("%d",&n),n)
{
m = 1;
while(1)
{
m++;
memset(visit,0,sizeof(visit));
visit[1] = 1;
k = 2;
sum = 0;
while(!visit[2])
{
if(!visit[k])
{
sum++;
}
if(sum == m)
{
visit[k] = 1;
sum = 0;
}
k++;
if(k == n+1)
k = 1;
}
for(i=3; i<=n; i++)
{
if(!visit[i])
{
break;
}
}
if(i > n)
break;
}
printf("%d\n",m);
}
return 0;
}