今天AC两道啊啊啊啊啊!!被这题虐死了啊啊啊啊!!先是直接递归,溢出,就知道没这么简单……后来发现了循环,结果n类型写错,数组下标溢出,忘记跳出循环,循环节长度求错……我勒个去的26号的题拖到现在啊啊啊啊啊!!!终于AC了……纪念一下……动态建表,学到啦!!!
Number Sequence
#include <iostream> using namespace std; int main() { int A,B,i,j,circle,pre; int f[201]; long n; while(cin >> A >> B >> n) { if( A==0 && B==0 && n==0) break; else { f[0]=0; f[1]=1; f[2]=1; circle =0; pre=0; for(i=3; i<=200; i++) f[i]=(A*f[i-1]+B*f[i-2])%7; for(i=3; i<200; i++) { for(j=1; j<i; j++) { if(f[i]==f[j] && f[i+1]==f[j+1]) { circle=i-j; pre=j-1; break; } } if(circle != 0) break; } if(n>pre+circle) n=((n-pre)%circle)+pre+circle; cout << f[n] << endl; } } return 0; }