#include<iostream>
using namespace std;
const long N=2147483647;
int main()
{
int m;
while(cin>>m)
{
int begini=0;
long i=0,j=0,count=0;
for ( i=1; i < N; i++)
{
count=0;
int flag=0;
int begini=i;
for (int k = 0; k < m; ++k)
{
j=i/(m-1)*m+1;//反推最后一只候分吃以后剩下的桃子为i,则再其操作之前为j,j为上一只猴子留下来的,肯定能被m-1整除
if (j%(m-1)==0)
{
if (flag==0)
{
begini=i;
flag=1;
i=j;
count++;
}
else
{
i=j;
count++;
}
}
else
{
i=begini;
break;
}
}
if (count==(m-1))
{
cout<<j<<endl;
break;
}
}
}
}
2016华为机试-猴子分桃
最新推荐文章于 2024-09-01 11:21:10 发布