也算是个数学问题,这个题在<<具体数学>>第一章第三节1.3 The Josephus Problem中有 详细讲解。
针对 这个题 来说,我第一次提交编译错误,然后查了查,发现问题出在__int64上,zoj不支持它,相应可以用long long来替换,改过之后,竟然TLE了,不可思议,这种简单计算竟然也会超时,我把测试数据的次数改成某个十几位的数,一运行,没结果,一看cpu占用率90%,好吧,它肯定在那计算着呢,我仔细想了想,可能有J(n)=n的情况,果不其然当n=(1111……1111)2 的时候。。。。。加入pre变量,如果前后结果一样,跳出》》具体原理参照书上吧。