网上有很多答案;
但是有一个规律很重要,就是根据式子 f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7式子中f(n-1)和f(n-2)最多各有7中,也就是说f(n)的答案最多有7*7=49种;代码很短;
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int A,B,n;
while(cin >> A >> B >> n)
{
int a[50]={0,1,1,};
int i;
if(A==0&&B==0&&n==0)
break;
if(n==1||n==2)cout<<1<<endl;
else
{
for(i=3; i<=49; i++)
{
a[i]=( A * a[i - 1] + B * a[i - 2] ) % 7;
}
cout << a[n%49] << endl;
}
}
}