51nod 1126 求递推序列的第N项 && hdu - 1005 Number Sequence (求周期)

时间:2023-03-09 16:46:48
51nod 1126 求递推序列的第N项 && hdu - 1005 Number Sequence (求周期)

http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1126

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

注意上面一题和下面一题的区别,上面A,B可能取负数,但是mod跟c++中%是不一样的,mod只会得到非负数,两次跳进这个坑了.

然后就找周期,只要f[i-1]==1&&f[i]==1就可以跳出,然后i-2就是周期,输出n%(i-2)的时候,要注意如果等于0的话,其实n是等于i-2,所以要输出f[i-2]。

还有难道循环节一定是从1 1 开始的??

 #include<cstdio>
int f[];
int main()
{
//freopen("a.txt","r",stdin);
int a,b,n,i;
f[]=f[]=;
while(~scanf("%d %d %d",&a,&b,&n))
{
if(a==&&b==&&n==) break;
for(i=;i<;i++)
{
f[i]=((a*f[i-]+b*f[i-])%+)%;
// printf("%I64d\n",f[i]);
if(f[i]==&&f[i-]==) break;
}
f[]=f[i-];
printf("%d\n",f[n%(i-)]);
}
return ;
}