约瑟夫环问题,将人数循环左移一位即得结果.
Source:
#include<iostream>
#include<cmath>
using namespace std;
char str[10];
int t,i;
int main()
{
while(1)
{
cin>>str;
if(strcmp(str,"00e0")==0)break;
t=(str[0]-'0')*10+str[1]-'0';
for(;str[3]>'0';str[3]--)t*=10;
t=t<<1|1;
for(i=1;i<=t;i<<=1);
t=t^(i>>1);
cout<<t<<endl;
}
}