黑马程序员技术交流社区
标题:
求高手给我深度讲解一下递归
[打印本页]
作者:
李杰
时间:
2012-8-31 21:08
标题:
求高手给我深度讲解一下递归
跟我详解一下什么时候用递归,递归有什么好处,递归需要注意什么!!!
最好给我多举几个经典的例子,
作者:
黑马_许芸
时间:
2012-8-31 22:20
public class DiGui
{
public static void main(String[] args)
{
System.out.println(fab(10));
System.out.println(jieCheng(1));
}
//斐波那契数列
public static int fab(int n)
{
if (n==1 || n==2)
{
return 1; //此方法的出口
}else if (n>2) {
return fab(n-1)+fab(n-2);
}else {
return 0; //表明传入的参数有误,n必须为大于0的整数。
}
}
//求阶乘
public static int jieCheng(int n)
{
if (n==0)
{
return 1; //此方法的出口
}else if (n>0) {
return n*jieCheng(n-1);
}else {
return 0; //表明传入的参数有误,n必须为大于等于0的整数。
}
}
}
复制代码
所谓递归就是方法调用自身。最重要的就是事先要想到方法的出口,不然的话就是死循环了。
有两个简单的递归的例子。
1,求斐波那契数列:1,1,2,3,5,8,13……。求此数列的第n个数字:
2,求阶乘,n!
作者:
冯培军
时间:
2012-8-31 23:11
递归的使用
什么叫递归 ?
函数自身直接或者间接的调用到了自身
什么时候使用递归 ?
一个功能在被重复使用,并每次使用时,参与运算的结果和上一次调用有关 。这时可以使用递归来解决问题 。
使用注意事项 :
递归一定要明确条件,否则容易栈溢出
递归的图解
QQ截图20120831231025.png
(37.97 KB, 下载次数: 17)
下载附件
2012-8-31 23:10 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2