写这道题目写到头疼。。。。约瑟夫环问题,需要打表,不打表好像会RTE。
ac代码:
#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
int ans[15]={0};//进行打表记录
int main()
{
int k;
while(scanf("%d",&k)!=EOF&&k!=0)
{
for(int n=k+1; ;n++)
{
if(ans[k]!=0)break;
int j=0,i,flag=0;
for(i=2*k;i>k;i--)
{
j=(j-1+n)%i;//记录从哪个位置开始往下数
if(j<k)
{
flag=1;
break;
}
}
if(i==k)
{
ans[k]=n;
break;
}
}
printf("%d\n",ans[k]);
}
return 0;
}