#include <iostream>
using namespace std;
int f(int A,int B,int n)
{
//f(A,B,n) = ((A * f(A,B,(n - 1)) + B * f(A,B,(n - 2))) % 7);
if(n>2)//(n!=1||n!=2)
{
return ((A * f(A,B,(n - 1)) + B * f(A,B,(n - 2))) % 7);
}
//f(A,B,1) = 1, f(A,B,2) = 1;
if(n==1||n==2)
{
return 1;
}
//return f(A,B,n);
}
int main()
{
//
int a,b,c;
while(cin>>a>>b>>c)
{
if(a+b+c==0)//(a==b==c==0)
{
break;
}
else
{
c=c%48;//加上这一句就对了!!!!!!!
cout<<f(a,b,c)<<endl;
}
}
}
第一次提交,用递归做,出现了Memory limit exceeded,大概也是这个题目的设计之处,毕竟题设都很简单,百度之后才知道,这题需要找规律。。
50个为一个循环