首页 > 其他 > 详细

寻找不是开头的循环节

时间:2015-01-29 12:02:13      阅读:156      评论: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
    关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
    © 2014 bubuko.com 版权所有
    打开技术之扣,分享程序人生!