首页 > 代码库 > 寻找不是开头的循环节
寻找不是开头的循环节
#include <stdio.h>
int f[1010]= {0, 1, 1};
int main()
{
int a, b;
long long int n;
while( ~scanf("%d%d%lld", &a, &b, &n) && a+b+n)
{
for(int i=3; i<=n; i++) //两个循环先建立小的查找数组
{
f[i] = (a*f[i-1] + b*f[i-2]) %7;
for(int j=2; j<i; j++)
{
if(f[j-1] == f[i-1] && f[i] == f[j]) //开始寻找,注意不一定为开头
{n = (n-j)%(i-j)+j; break;}
}
}
printf("%d\n", f[n]);
}
return 0;
}
来自为知笔记(Wiz)
附件列表
寻找不是开头的循环节
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。