hdoj1005 Number Sequence(找规律)

来源:互联网 发布:mac中文解压软件 编辑:程序博客网 时间:2024/05/14 10:02

来源:http://acm.hdu.edu.cn/showproblem.php?pid=1005

很明显找规律的题目,因为它给出的n太大,遍历的话一定会超时。

代码如下:

#include<stdio.h>#include<string>#include<iostream>using namespace std;int t[90000001];int main(){int a,b,n,i,cycle,j;while(~scanf("%d%d%d",&a,&b,&n)){if(a==0&&b==0&&n==0)break;t[1]=1;t[2]=1;cycle=0; for(i=3;i<=n;i++){t[i]=(t[i-1]*a+t[i-2]*b)%7;for(j=2;j<i;j++){if(t[j]==t[i]&&t[j-1]==t[i-1]){cycle=i-j;break;}}if(cycle>0)break;}if(cycle>0)t[n]=t[(n-j)%cycle+j];printf("%d\n",t[n]);   }return 0;}


原创粉丝点击