码迷,mamicode.com
首页 > 其他好文 > 详细

寻找不是开头的循环节

时间:2015-01-29 12:05:18      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:

  1. #include <stdio.h>
  2. int f[1010]= {0, 1, 1};
  3. int main()
  4. {
  5. int a, b;
  6. long long int n;
  7. while( ~scanf("%d%d%lld", &a, &b, &n) && a+b+n)
  8. {
  9. for(int i=3; i<=n; i++) //两个循环先建立小的查找数组
  10. {
  11. f[i] = (a*f[i-1] + b*f[i-2]) %7;
  12. for(int j=2; j<i; j++)
  13. {
  14. if(f[j-1] == f[i-1] && f[i] == f[j]) //开始寻找,注意不一定为开头
  15. {n = (n-j)%(i-j)+j; break;}
  16. }
  17. }
  18. printf("%d\n", f[n]);
  19. }
  20. return 0;
  21. }





附件列表

     

    寻找不是开头的循环节

    标签:

    原文地址:http://www.cnblogs.com/sober-reflection/p/e56a449bdfeb454e8ab99e1421c29b13.html

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!