- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法的分析_综合性设计性实验_动态规划法_实验报告
综合性、设计性实验报告姓名周紧学号200908001157专业计算机科学与技术班级09级01班实验课程名称算法设计与分析指导教师及职称吕兰兰 讲师开课学期2011至 2012学年上学期上课时间2011年12月7日湖南科技学院教务处编印一、实验设计方案实验名称:用动态规划法来求解最少硬币问题。实验时间:2011-12-2小组合作:是○否●小组成员:1、实验目的:1)理解回溯法的深度优先搜索策略2)掌握用回溯法解题的算法框架3)针对具体问题,能应用回溯法设计有效算法4)用C++实现算法,并且分析算法的效率2、实验设备及材料:硬件设备:PC机操作系统:win7开发工具:vc++6.03、实验内容最少硬币问题问题描述设有n种不同面值的硬币,各个硬币的面值存于数组T[1:n]中,现在要用这些面值的硬币来找钱,可以使用的各种面值的硬币个数存于数组Coin[1:n]中。对于任意钱数0=m=20001,设计一个用最少硬币找钱m的方法。算法设计:对于给定的1=n=10,硬币面值数组T和可以使用的各种面值的硬币个数数组 Coins,以及钱数m,0=m=20001,就算找钱m的最少硬币数.数据输入:由文件input.txt提供输入数据,文件的第一行中只有一个整数给出n的值,第二行起每行2个数,分别是T[j]和Coin[j],最后一行是要找的钱数m。结果输出:将计算出的最少硬币数输出到文件output.txt,问题无解时输出-1。输入文件示例输出文件示例 input.txt output.txt 3 5 1 3 2 3 5 3 18程序代码:#include stdio.h#include algorithm#include fstream.husing namespace std ;struct Coin{int value ;int num ;}T[11] ;int comp(Coin a ,Coin b ){return a.value = b.value ;}int main(){int i ;int n ;int m ,sum ;ifstream fin; fin.open(D:\\input.txt); finin;while(n != EOF){ for( i = 0 ; i n ; i ++ )finT[i].value T[i].num;finm; sort(T,T+n ,comp ); sum = 0 ; int k = -1 ; for( i = n-1 ; i =0 ; i-- ) { if( T[i].value = m ) { k = i ; break; } } for( i = k ; i = 0 ; i -- ) { while( T[i].num 0 m = T[i].value ) { sum ++ ; m -= T[i].value ; } if( m = 0 ) break ; }ofstream fout(“D:\\output.txt”);foutsum ;}return 0 ;}结果输出非文件输入输出主函数调用:main(){int i ;int n ;int m ,sum ;while(scanf(%d,n ) != EOF){ for( i = 0 ; i n ; i ++ ) { scanf(%d %d,T[i].value , T[i].num ); } scanf(%d,m ) ; sort(T,T+n ,comp ); sum = 0 ; int k = -1 ; for( i = n-1 ; i =0 ; i-- ) { if( T[i].value = m ) { k = i ; break; } } for( i = k ; i = 0 ; i -- ) { while( T[i].num 0 m = T[i].value ) { sum ++ ; m -= T[i].value ; } if( m = 0 ) break ; } printf(%d\n,sum ) ;}return 0 ;}调试过程记录如下:6.参考文献:
您可能关注的文档
最近下载
- 五年级语文作文《“漫画”老师》写作指导.pptx VIP
- 手持式电动工具安全培训.pptx VIP
- 架空输电线路无跨越架不停电跨越架线施工工艺.docx VIP
- 2025年统编版(2024)小学道德与法治二年级上册(全册)教学设计(附目录P84).docx
- 学习科学家精神袁隆平先进事迹心得体会(10篇).docx VIP
- 3500词(带音标)——完整打印版 .pdf VIP
- 3hac18153 3 reve应用手册机器人控制器robotware5.pdf VIP
- 环境影响评估投标方案(技术标).pdf
- 416例晚期妊娠合并贫血治疗分析.doc VIP
- 生物医学传感纳米生物传感器.ppt VIP
文档评论(0)