其实解决本题的方法是找出规律,当f1,f2和a b的值确定后,你就可以利用题目中给出的公式往后计算了,如果我们把所有fn的取值算作一个队列(非数据结构中的队列)的话,可以肯定的是,这个队列不会延展太长,到了一定长度,肯定会出现重复,而我们需要做的就是找出这个重复点。
后来问月,他是专门搞数论的,他说%决定了它后面的元素会重复,当遇到两个都是1时,后面的元素就开始重复了,
if(circle[i]==1&&circle[i-1]==1)
break;
circle[i+1]必定是2,circle[i+2]必定是3,……以后就循环下去了。