- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
递归在java语言中的应用
?两个小经验??1.在定义一个类时,不要随意定义成员变量.除非它是这个类的一个属性或者在类的多个方法中要用到?它.
??2.?? public class Test?? {??public static void main(String[] args)???? ?{???? ??byte[] b = new byte[102400*1024];???? ?}?? }?? 这是一个简单的程序,在写上传文件的程序时极有可能遇到这个情况.比喻说有一个文件的长度是100M.??在读取文件内容时就会这样写byte[] b = new?? byte[102400*1024],但是在运行时会出一个内存越界??错误.在实际应用中一定要非常小心.?二 . 递归:??先看一个小例子:??? public class Recursion??? {????public static void func()????{????? func();????}????public static void main(String[] args)????{????? func();????}??? }??上面就是一个简单的递归程序,运行一定会把内存吃光,所以在使用递归时一定要加上特定的条件????下面再看几个递归的例子.??(1) .??public class YueShuTest??{????//求最大公约数???public static void yueshu(int num1,int num2)???{????if(num1 == num2)????{?????System.out.println (num1);????}????else????{?????yueshu(Math.abs(num1 - num2),Math.min(num1,num2));????}???}????//求二进制???public static void binary(int num)???{????if(num 0)????{?????binary(num / 2);??????? System.out.print (num % 2);????}???}????}??下面在看一个最经典的汉诺塔问题(很复杂的一个问题).??public class Hanon??{???static void hanon(int n,char a,char b,char c)???{????if(n == 1)????{?????move(1,a,c);?????return;????}???????hanon(n - 1,a,c,b);????move(n,a,c);????hanon(n - 1,b,a,c);????}??????static void move(int n,char a,char c)???{????System.out.println (n + : + a + -- + c);???}??????public static void main(String[] args)??? {???? ?hanon(3,A,B,C);???? }?}?看看,一个多么复杂的问题这么几行代码就搞定了.递归的威力无穷啊!?再来看一个更复杂的.??import java.io.*;????class FileWrapper extends File??{???private boolean bLast = false;???private FileWrapper parent = null;???public FileWrapper(File f,boolean bLast,FileWrapper parent)???{????super(f.getPath());????this.parent = parent;????this.bLast = bLast;???}??????public FileWrapper getMyParent()???{????return parent;???}??????public boolean isLast()???{????return bLast;???}???}??????public class FileTree??{???//第一种方法.???/*public static String makeSpaces(int level)???{????StringBuffer sbf = n
您可能关注的文档
- 超纯水设备在净化水处理中应用领域.doc
- 超大规模管理优化问题求解-城市小区粪渣清运排班案例研究.pdf
- 第10_11篇12页.ppt
- 第10讲 图形和图像的绘制处理(中国铁道出版社 陈勇孝 郎洪编著).ppt
- 超级面包屑分面查找.pdf
- 第10讲 第2节第7节 循环群.ppt
- 超级无敌奖门人里的游戏名称与游戏规则.doc
- 第10讲 数组与矩阵.ppt
- 第10节 创建 Web 应用程序.ppt
- 第10节 动态规划.ppt
- 第十一章 电流和电路专题特训二 实物图与电路图的互画 教学设计 2024-2025学年鲁科版物理九年级上册.docx
- 人教版七年级上册信息技术6.3加工音频素材 教学设计.docx
- 5.1自然地理环境的整体性 说课教案 (1).docx
- 4.1 夯实法治基础 教学设计-2023-2024学年统编版九年级道德与法治上册.docx
- 3.1 光的色彩 颜色 电子教案 2023-2024学年苏科版为了八年级上学期.docx
- 小学体育与健康 四年级下册健康教育 教案.docx
- 2024-2025学年初中数学九年级下册北京课改版(2024)教学设计合集.docx
- 2024-2025学年初中科学七年级下册浙教版(2024)教学设计合集.docx
- 2024-2025学年小学信息技术(信息科技)六年级下册浙摄影版(2013)教学设计合集.docx
- 2024-2025学年小学美术二年级下册人美版(常锐伦、欧京海)教学设计合集.docx
文档评论(0)