HDU 1005 Number Sequence

找规律

结果一定会循环  当出现0 1 1 时就是一个循环  后面的数据会和前面的一样

 

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 using namespace std;
 5 
 6 int main()
 7 {
 8 
 9     freopen("C:\\CODE\\in.txt", "r", stdin);
10     //freopen("C:\\CODE\\out.txt","w",stdout);
11 
12     int A,B,n;
13     int a[100]={0};
14     a[0]=0;a[1]=a[2]=1;
15     while(~scanf("%d%d%d",&A,&B,&n)) {
16         if(A+B+n == 0)
17             break;
18         int i;
19         for(i=3;i<100;i++){
20             a[i]=(A*a[i-1]+B*a[i-2])%7;
21             if(a[i]==a[i-1] && a[i]==1)
22                 break;
23         }
24         i=i-2;
25         n=n%i;
26         if(n == 0) n=i; //若没有这句,会错误
27         printf("%d\n",a[n]);
28 
29     }
30 
31     fclose(stdin);
32     return 0;
33 }

 

posted @ 2016-03-17 19:25  闪耀子  阅读(128)  评论(0编辑  收藏  举报