首页 > 代码库 > 寻找不是开头的循环节

寻找不是开头的循环节

  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. }



来自为知笔记(Wiz)


附件列表

     

    寻找不是开头的循环节