题目:http://acm.hdu.edu.cn/showproblem.php?pid=1005
1 1 100 //前100项
1 1 2 3 5 1 6 0 6 6 5 4 2 6 1 0 //16
1 1 2 3 5 1 6 0 6 6 5 4 2 6 1 0
1 1 2 3 5 1 6 0 6 6 5 4 2 6 1 0
1 1 2 3 5 1 6 0 6 6 5 4 2 6 1 0
1 1 2 3 5 1 6 0 6 6 5 4 2 6 1 0
1 1 2 3 5 1 6 0 6 6 5 4 2 6 1 0
1 2 18 //前18项
1 1 3 5 4 0 //6
1 1 3 5 4 0
1 1 3 5 4 0
6与16的最小公倍数为48,及周期为48
(ps:分析方法参考自HDU id: TangJiuling9009 )
#include <iostream>
using namespace std;
int func(int A,int B,int n);
int main()
{
int a,b,m;
while((cin>>a>>b>>m)&&(a!=0||b!=0||m!=0))
{
m=mH;
cout<<func(a,b,m)<<endl;
}
return 0;
}
int func(int A,int B,int n)
{
if(n==1||n==2)
return 1;
else
return (func(A,B,n-1)*A+func(A,B,n-2)*B)%7;
}