杭电acm1005
开始用递归总是超时,后来发现每 7 一循环,不过要根据 f [3] 把0, 1, 2, 3, 4, 5, 6的次序改了,但这样我写不出来,后来百度说49一循环,解决了。
#include <iostream> using namespace std; int main() { int a,b; long int n; int i; int f[50]; while(cin>>a>>b>>n && n!=0) { f[1]=1; f[2]=1; for(i =3;i<=48;i++) { f[i]=(a*f[i-1]+b*f[i-2])%7; } n =n % 49; f[0] = f[48]; cout<<f[n] <<endl; } return 0; }