题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1005
题目大意:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. 给定 A, B, n, 求 f(n).
//C++代码
#include<iostream>
using namespace std;
int main(){
int a,b,n;
while(cin>>a>>b>>n,a||b||n){
a%=7,b%=7;
int p=1,q=1,i,k,l,num,t[55];
int s[7][7]={0};
for(i=1;i<=50;i++){
t[i]=p;
if(s[p][q]==0){
s[p][q]=i;
num=(q*a+p*b)%7;
p=q;
q=num;
}
else{
k=i-s[p][q];
l=i-1;
break;
}
}
n-=(n-l)/k*k;
if(n>l) n-=k;
cout<<t[n]<<endl;
}
return 0;
}