java 递归详解
2011-07-21 20:44
204 查看
example: 求5的阶乘。。
如下:
public class Test { static int multiply(int n){ if(n==1||n==0) return n; else return n*multiply(n-1); }
public static void main(String[] args){ System.out.println(multiply(10)); } }
上面的multiply是一个阶乘的例子。其实递归递归,从字面上解释就是在方法本身调用自己的方法,或者间接调用;看上面的程序,拿multiply(5)来说: n=5;执行 5*multiply(4); -------------------- 这时候看multiply(4) n=4 执行 4*multiply(3); ------------------- 看multiply(3) n=3,执行 3*multiply(2); --------------- mulitply(2); n=2 执行 2*mulitply(1); 这时候,return 1;往上返回 2*1向上返回 3*(2*1)向上返回 4*(3*(2*1)) 向上返回 5*(4*(3*(2*1)) ) = 120 所以程序输出120; 这事简单的递归的例子;所以可以看出来递归的关键得有递归出口(本体的If语句),还有递归方法;
如下:
public class Test { static int multiply(int n){ if(n==1||n==0) return n; else return n*multiply(n-1); }
public static void main(String[] args){ System.out.println(multiply(10)); } }
上面的multiply是一个阶乘的例子。其实递归递归,从字面上解释就是在方法本身调用自己的方法,或者间接调用;看上面的程序,拿multiply(5)来说: n=5;执行 5*multiply(4); -------------------- 这时候看multiply(4) n=4 执行 4*multiply(3); ------------------- 看multiply(3) n=3,执行 3*multiply(2); --------------- mulitply(2); n=2 执行 2*mulitply(1); 这时候,return 1;往上返回 2*1向上返回 3*(2*1)向上返回 4*(3*(2*1)) 向上返回 5*(4*(3*(2*1)) ) = 120 所以程序输出120; 这事简单的递归的例子;所以可以看出来递归的关键得有递归出口(本体的If语句),还有递归方法;
相关文章推荐
- Java中的递归详解(用递归实现99乘法表来讲解)
- Java递归详解_动力节点Java学院
- Java中的递归详解及实现方法
- java 递归详解
- Java中的迭代和递归详解
- 递归思想详解以及归并排序(java实现)
- java 递归详解
- Java-全排列-递归 详解
- java基础之final详解
- java的部署工具ant详解
- ant教程详解 --javac,java,jar,war,delete,copy,mkdir...
- 详解java学习中堆与栈的内容
- java中四种操作(DOM、SAX、JDOM、DOM4J)xml方式详解与比较
- JAVA之旅(二十九)——文件递归,File结束练习,Properties,Properties存取配置文件,load,Properties的小练习
- Java 对 Properties 文件的操作详解及简单实例
- java基本数据类型传递与引用传递区别详解
- Java工具类List中的toArray方法及java.lang.ArrayStoreException详解
- (九)java.io.FileSystem抽象类详解
- java中hashcode()和equals()的详解
- JAVA 遍历文件夹下的所有文件(递归调用和非递归调用)