归纳算法:硬币翻转.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
福建工程学院计算机与信息科学系 实验报告– 2013 学年第 一 学期 任课老师: 章静 课程名称 C语言结构化编程 班级 计算机类1105班 座号 3110307518 姓名 裴和平 实验题目 分治算法设计技术的应用 实验时间 实验开始日期: 2012.12.24 报告提交日期: 2012.12.28 实验目的、要求 1、有N个硬币(N为偶数)正面朝上排成一排,每次将N-1个硬币翻过来放在原位置,不断地重复上述过程,直到最后全部硬币翻成反面朝上为止。设计程序让计算机把翻币的最简过程以及翻币次数输出(用*表示正面,O表示反面) 2、有N个硬币(N为奇数)正面朝上排成一排,每次将N-2个硬币翻过来放在原位置,不断地重复上述过程,直到最后全部硬币翻成反面朝上为止。设计程序让计算机把翻币的最简过程以及翻币次数输出(用*表示正面,O表示反面) 实验步骤与内容 按如下顺序写: 主要设计思想; 对于任意的硬币x,设翻转n(x)(奇数)次,则除x外其他N-1个硬币要一起翻转n-n(x)次(奇数),n-n(x)=1,3,5,…,n-1.考虑n-n(x)=3,5,…,n-1的情况,将N-1个硬币翻转3次或者更多次得到的结果与翻转一次的结果完全相同,且比翻转一次更麻烦,不是最简单过程,因此,只有n-n(x)=1才满足要求,即n(x)=n-1,又由于x的任意性,可知,每个硬币的翻转次数都是n-1次,因此总的翻转次数为N*(n-1),根据n(N-1)=N*(n-1)可得: N*n-n=N*n-N得n=N.即共翻转N次,其中每个硬币翻转次数为N-1。考虑到所有硬币翻转次数相同,因此可以将其看成一个环,从某个位置开始,先翻转N-1个,再前进一步,翻转N-1个,直到完成翻转N次。 主要数据结构及其解释 int Turncoin1 (int num,int s[]);//奇数n-2 int Turncoin2 (int num,int s[]);//偶数n-1 模块关系图; 流程图 所有函数的简要说明 Main()主函数中申请数组s,并给数组中成员都赋值为1,设为正面;由用户输入的硬币数调用两函数。 int Turncoin2(int num,int s[])//翻硬币(偶);该函数利用双循环,外循环i控制不翻转的硬币,j控制将数组值取反,并按正反面输出*或0;i前进一位,j就循环一趟。 int Turncoin1 (int num,int s[]);//奇数n-2;做法同上 试验过程记录 记录试验中遇到的困难及解决方法; 奇数个硬币翻转时,因为是i-2个翻转,所以弄了比较久。 实验结果记录以及与预期结果比较以及分析 记录每次实验结果以及分析情况 总结以及心得体会 刚好前一题目做分而治之,对多种排序进行了好好的比较,所以做这题时马上就想到使用双循环,所以感觉题目还是要自己多练练些,见的多了就能找出方便的方法。 指导老师评阅意见 指导老师: 年 月 日 4 Main主函数 Turncoin1()函数 Turncoin2()函数

文档评论(0)

e71ah65wn9 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档