HDU 1005题解,这种题目关键在于寻找循环节,这很重要1,很容易找到循环环节是49,AC就是理所当然

 1 #include<stdio.h>
2
3 int main()
4 {
5 int a, b, n, i, c[49];
6
7 while(scanf("%d%d%d", &a, &b, &n) != EOF)
8 {
9 if(a==0 && b==0 && n==0) break;
10 c[1] = 1;
11 c[2] = 1;
12 a = a%7;
13 b = b%7;
14 for (i=3; i<=49; i++)
15 {
16 c[i] = (c[i-1]*a + c[i-2]*b)%7;
17 }
18 if(n%49==0)
19 printf("%d\n",c[49]);
20 else
21 printf("%d\n",c[n%49]);
22 }
23 return 0;
24 }
25

  

posted @ 2011-09-14 16:47  zhongya  阅读(122)  评论(0编辑  收藏  举报