2014武汉理工复试机试 点蜡烛问题(java) - 胡奥勇.doc

2014武汉理工复试机试 点蜡烛问题(java) - 胡奥勇.doc

ID:55687661

大小:78.00 KB

页数:12页

时间:2020-05-24

2014武汉理工复试机试 点蜡烛问题(java) - 胡奥勇.doc_第1页
2014武汉理工复试机试 点蜡烛问题(java) - 胡奥勇.doc_第2页
2014武汉理工复试机试 点蜡烛问题(java) - 胡奥勇.doc_第3页
2014武汉理工复试机试 点蜡烛问题(java) - 胡奥勇.doc_第4页
2014武汉理工复试机试 点蜡烛问题(java) - 胡奥勇.doc_第5页
资源描述:

《2014武汉理工复试机试 点蜡烛问题(java) - 胡奥勇.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、2014武汉理工复试机试——点蜡烛问题(Java实现)140+胡奥勇一、说明1.机试点蜡烛的问题,题目具体描述见主程序中类注释“描述”部分,主要用递归算法实现,另需要对蜡烛长度数组排序;2.代码即文档,讲究代码规范,关键逻辑处,注释写清楚,只考虑完成功能的话(现实文件读写)java实现大约200行代码;3.主程序TestCase.java读输入文件input.txt,计算每组蜡烛可燃烧最大天数,并输出到结果文件output.txt;4.CandleADT为自定义抽象数据结构(复试看数据结构时候感触颇深,顺便用一下),主要解决蜡烛燃烧这一类的问题,定义了一些扩展接口,主要考虑是解

2、决不限于题目所描述燃烧规则中求解最大燃烧天数这一类问题。利用定义的扩展接口可适应解决其他燃烧规则中蜡烛最大天数的求解,此处留给有兴趣的读者验证;(提示,可采用设计模式中的策略模式,在CandleADT中只定义接口,具体实现交给不同的燃烧规则类去实现)关键的几个函数为:sortList();//升序排序以便后续按照最优策略燃烧lighting(days);//第i天的蜡烛燃烧,消耗掉print();//显示燃烧后结果countDays();//递归向下进行5.Candle实体,含蜡烛标示,(机试的题目再出难一点,要求跟踪显示燃烧过程中具体每根蜡烛的燃烧情况)是为进一步的优化,可跟

3、踪显示燃烧过程中每根蜡烛燃烧过程中变化情况。显示即(A4B2C2D2àA3B2C2D2等)相应的CandleADT中list换成list相关接口略微更改即可,排序的接口需要自定义比较类。此处笔者不去具体实现,留与感兴趣的读者实现。6.机试如果要求显示燃烧过程中每根蜡烛的燃烧情况,估计在2h考试场景,以java程序猿从来不浪费记忆力在记API上(都是即需即查)的性格,没有网络条件下,基本上没人能做出来了,包括笔者在内。笔者在调试其他扩展接口过程中就花了不少时间。。。以上所述,包括以下代码,为机试交卷完成后凭记忆回忆重新输出的,仅供内部交流讨论,

4、转载请注明出处。(欢迎针对代码设计和实现的讨论,联系QQ:252302770。)二、主程序packagecom.whut.huay;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.util.ArrayList;importjava.

5、util.List;/***

*点蜡烛问题主程序*描述:*1.一根蜡烛燃烧一天消耗一个单位;*2.第i天要燃烧i根蜡烛;*3.给定一个数量不定,每根蜡烛长度不定的蜡烛组,求这组蜡烛在满足条件1,2前提下的最大燃烧天数*4.数据来源为input.txt文件,结果写入到output.txt**分析:*1.仔细分析,对于蜡烛组,最多可燃烧天数最佳策略为,每次从长度最长的蜡烛开始燃烧;*2.第i天若存在i根长度不为0的蜡烛,说明可燃烧至第i天;*3.递归向下计算第i+1天是否有i+1根长度不为0的蜡烛*4.直到某个第n天时,可供燃烧蜡烛数量少于n,此时,最大可燃烧天数为(n-1);

6、*

**@author:huay*@since:2014年4月6日下午8:40:52*@history:*************************************************@file:TestCase.java*@Copyright:XX电子股份有限公司.Allrightreserved.************************************************/publicclassTestCase{privatestaticStringsourceFile="D:/input.txt";//输入文件路径private

7、staticStringdestFile="D:/output.txt";//输出文件路径/****@paramargs*@create2014年4月7日上午12:36:51huay*@history*/publicstaticvoidmain(String[]args){try{//读input.txt文件作为题目条件,此处没有作文件的存在性校验@SuppressWarnings("resource")BufferedReaderreader=newBufferedReader(newFi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。