这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。
//百练oj 1012 Joseph
#include
using namespace std;
int Check(int k, int m)
{
int i, start, len;
len = 2*k;
start = 0;
for(i=1; i<=k; i++)
{
start = (start -1 + m) % len;
len--;
if(start < k)
return 0;
}
return 1;
}
int main(){
int k, m, a[14]={0}, i;
for(i=1; i<=13; i++)
{
for(m=i+1; ; m++)
{
if(Check(i, m))
{
a[i] = m;
break;
}
}
}
while(scanf("%d", &k;) && k != 0)
{
printf("%d\n", a[k]);
}
return 0;
}