ZOJ2105:点击打开链接

错误代码

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. int q[110];
  4. int main()
  5. {
  6. int a,b,n,T;
  7.  
  8. while(~scanf("%d%d%d",&a,&b,&n)&&(a||b||n))
  9. {
  10. T=0;
  11. q[1]=1;q[2]=1;
  12. q[3]=(a*q[2]+b*q[1])%7;
  13. for(int jj=4;jj<=100&&!T;jj++){
  14. q[jj]=(a*q[jj-1]+b*q[jj-2])%7;
  15. if(q[jj]==1&&q[jj-1]==1){
  16. T=jj-2;
  17. break;
  18. }
  19. }
  20. n=n%T;
  21. if(n==0) n=T;
  22. printf("%d\n",q[n]);
  23. }
  24. return 0;
  25. }

找到错误了,就是周期不一定包括了连续的1  1, 比如这个值域:1 1  0  1 0 1 0 ....

正确代码:

  1. /*
  2. zoj_2105 模拟
  3. 观察 f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.
  4. 将<f(n-1),f(n-2)>看成一个组合,则不同的组合有7*7=49中。(因为f[n-1]和f[n-2]的取值范围都是0至6)
  5. 假设循环周期为T,则f[n+T]=f[n],而T必定不超过50。找到循环周期要计算就很简单了。
  6. */
  7. #include <iostream>
  8. #include <cstdio>
  9. #include <string.h>
  10. using namespace std;
  11. int flag[7][7];
  12. int num[7][7];
  13. int f[100];
  14.  
  15. int main()
  16. {
  17. int a,b,n,i;
  18. int sta,turn;
  19. while( scanf( "%d%d%d",&a,&b,&n ) && ( a||b||n ) )
  20. {
  21. memset( flag,0,sizeof(flag) );
  22. f[1]=1;
  23. f[2]=1;
  24. flag[1][1]=1;
  25. num[1][1]=1;
  26. for( i=3;i<=100;i++ )
  27. {
  28. f[i]=( a*f[i-1]+b*f[i-2] )%7;
  29. if( flag[ f[i] ][ f[i-1] ]==1 )
  30. {
  31. sta=num[ f[i] ][ f[i-1] ];
  32. turn=i-sta-1;
  33. }
  34. else
  35. {
  36. flag[ f[i] ][ f[i-1] ]=1;
  37. num[ f[i] ][ f[i-1] ]=i-1;
  38. }
  39. }
  40. printf( "%d\n",f[ (n-sta)%turn+sta ] );
  41. }
  42. return 0;
  43. }

ZOJ2105 终于找到错误的更多相关文章

  1. (6)妈的终于找到能用的nehe sdk了

    在网上下载了有十多个,终于找到一个能用的了 下面是下载地址: http://download.csdn.net/detail/jason_bourn/681620#comment 泪奔啊~

  2. FindBugs找到错误(一)

    FindBugs找到错误(一) 错误类型: SBSC_USE_STRINGBUFFER_CONCATENATION

  3. 巨坑npm run dev 报错 终于找到正确答案 Error: EPERM: operation not permitted, open '/data/public/build/css/add.p

    Windows10环境 npm run dev 报错  终于找到正确答案 Error: EPERM: operation not permitted, open '/data/public/build ...

  4. 擦他丫的,今天在Django项目中引用静态文件jQuery.js 就是引入报错,终于找到原因了!

    擦 ,今天在Django项目中引用静态文件jQuery.js 就是引入报错,终于找到原因了! 问题在于我使用的谷歌浏览器,默认使用了缓存,导致每次访问同一个url时,都返回的是缓存里面的东西.通过谷歌 ...

  5. Java:终于找到了在alloy中的JFileChooser中的弹出式菜单不显示文字的解决办法

    alloy界面可以说是我写过的最漂亮的一种JAVA界面. 可惜不知为什么,至从几年前推出1.4版后,就再也没有更新了. 随着java版本的升级,一直很担心alloy有一天不再适用于java的最新版. ...

  6. 30款超酷的HTTP 404页面未找到错误设计

    访问网站过程中,我们最常看到的HTTP错误就是404页面未找到错误,很多网站都针对这个错误设计自己富有个性的页面,在今天这篇文章中我们就分 享30多款设计非常霸道的404错误页面,希望大家能够找到更多 ...

  7. linux信号Linux下Signal信号太详细了,终于找到了

    linux信号Linux下Signal信号太详细了,终于找到了 http://www.cppblog.com/sleepwom/archive/2010/12/27/137564.html

  8. POJ 1504,ZOJ 2001,UVA 713, Adding Reversed Numbers,错误,已找到错误

    ------------------------------------------------------------ 以此题警告自己: 总结, 1.在数组的使用时,一定别忘了初始化 2.在两种情况 ...

  9. dede修改templets模板文件夹后,出现“无法在这个位置找到: ”错误的解决办法

    修改templets模板文件夹的方法: 首先找到系统配置文件common.inc.php,此文件存放在Include目录下,打开common.inc.php来修改默认模板目录templets, 查找: ...

随机推荐

  1. 详解java设计模式之责任链模式

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt175 从击鼓传花谈起 击鼓传花是一种热闹而又紧张的饮酒游戏.在酒宴上宾客依次 ...

  2. 数据结构学习:KMP模式匹配算法

    有关KMP的算法具体的实现网上有很多,不具体阐述.这里附上c的实现. 谈谈我自己的理解.KMP相较于朴素算法,其主要目的是为了使主串中的遍历参数i不回溯,而直接改变目标串中的遍历参数j. 比如说要是目 ...

  3. 启动springjar

    java -jar cms-exporter-0.0.1-SNAPSHOT.jar --spring.config.location=classpath:./config

  4. 转:【Java集合源码剖析】LinkedHashmap源码剖析

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/37867985   前言:有网友建议分析下LinkedHashMap的源码,于是花了一晚上时 ...

  5. 【Socket编程】通过Socket实现TCP编程

    通过Socket实现TCP编程 Socket通信 : 1.TCP协议是面向对象连接.可靠的.有序的,以字节流的方式发送数据. 2.基于TCP协议实现网络通信的类: 客户端----Socket类 服务器 ...

  6. Java课程设计——博客作业教学数据分析系统(201521123082 黄华林)

    Java课程设计--博客作业教学数据分析系统(201521123082 黄华林) 一.团队课程设计博客链接 博客作业教学数据分析系统(From:网络五条狗) 二.个人负责模块或任务说明 1.网络爬虫 ...

  7. 微信小程序中的微信支付js代码和流程详解

    微信支付流程 步骤 (一)获取用户的信息 (二)统一下单(返回的prepay_id用于第(三)步的请求参数) (三)发起支付请求 操作(这边假设你已经获得了用户的openId) (一).获取用户ope ...

  8. 201521123011《Java程序设计》第5周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 参考资料: 百度脑图 XMind 2. 书面作业 作业参考文件下载 1.代码阅读:Child压缩包内源代码 1.1 com.p ...

  9. 201521123027 <java程序设计>第11周学习总结

    1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2.书面作业 1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synchro ...

  10. 201521123092《java程序设计》第12周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,doubl ...