题目很有意思,主要思想是模拟它的过程,然后把求出的结果打表保存起来,不然会超时的
主要难点就在于找规律,我当时根据自己找到的规律写出来的,竟然8的结果不对,很郁闷不知道为什么??
#include<stdio.h>
int main()
{
int n,m,rest,now;
int sign[15]={0};
while(~scanf("%d",&n),n)
{
if(sign[n]==0)
{ m=0;
while(1)
{ m++;
now=0;
rest=2*n ;
while(1)
{
now=(now+m-1)%rest+1 ;
if(now>n)
{rest--;now--;}
else break;
}
if(rest == n)
{
sign[n] = m;
break;
}
}
}
printf("%d\n",sign[n]);
}
return 0;
}