题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1005
思想:找一下规律。虽然不易发现会有循环的规律,但是 mod 7 应该会给你们一些提示,看似斐波那契数列,F(n)=( F(n-1) + F(n-2))%7,等价于 F(n)=( F(n-1)%7 + F(n-2)%7)%7。所以会发现 7 x 7 = 49.就是以49为循环!
代码:
#include<stdio.h>
int main()
{
int n,x,y,i,a[10001];
while(scanf("%d %d %d",&x,&y,&n)&&(x,y,n))
{
a[1]=1;a[2]=1;
for(i=3;i<49;i++)
{
a[i]=(x*a[i-1]+y*a[i-2])%7;
}
printf("%d\n",a[n%49]);
}
return 0;
}