约瑟夫环问题。
#include <iostream>
using namespace std;
int a[14];
int main()
{
int n;
a[1] = 2;
for(int i = 2; i < 14; i++)
{
for(int m = i + 1; ; m++)
{
int s = 0, j = 2 * i;
while(1)
{
int x = (s + m) % j;
if(!x)
x = j;
if(x <= i)
break;
s = x - 1;
j--;
if(j == i)
{
a[i] = m;
break;
}
}
if(j == i)
break;
}
}
while(cin >> n && n)
cout << a[n] << endl;
return 0;
}