黑马程序员技术交流社区

标题: 递归的原理是什么? [打印本页]

作者: 低调的我    时间: 2014-12-17 22:18
标题: 递归的原理是什么?
看了好几遍了还不怎么明白,有人能解释下吗
作者: fatesabering    时间: 2014-12-17 22:23
一个方法反复调用自身,有点像循环
作者: kenhe    时间: 2014-12-17 22:32
函数内部调用函数,里面需要设置结束条件
作者: 周大侠    时间: 2014-12-17 23:51
用递归,就要有出口,和规律,下面是代码举例,希望对你有帮助,
package com.itheima;

/**
* 1.求斐波那契数列第n项,n<30,斐波那契数列前10项为 1,1,2,3,5,8,13,21,34,55
*
* @author  思路分析:从前10项数列分析相邻的三个数:第一位+第二位=第三位 递归算法!
*  出口:第一项和第二项已知
*  规律:第三项的值是前两项之和
*/
public class Test1 {

        public static void main(String[] args) {
                //
                System.out.println(fun(30));
        }
/**
*
* @返回值类型 int
* @参数列表 int n
* 问n项数,那么n-1和n-2项数是多少?
*
*/
        public static int fun(int n) {
                //出口就是n == 1,n == 2
                if (n == 1) {
                        return 1;
                } else if (n == 2)
                        return 1;
                else {
                        //这就是规律
                        return fun(n - 1) + fun(n - 2);
                }
        }
}

作者: 柳超    时间: 2014-12-18 00:12
循环是有次数限制,而有时候做的循环自己也不知道要循环多少次,那这个时候怎么办呢!
在方法中进行操作,然后判断是否需要继续操作,如果需要,调用本身,不需要就跳出 , 这样就把操作和判断又执行了一次,
直到判断不成立时,跳出 !  这个过程就是递归
作者: 林文龙    时间: 2014-12-18 06:02
你可以去画成一个图,路线就是主函数一步一步下来,从return一步一步返回的地方.,注意结合内存.当时是看了一个视频,他画了个图,然后就理解了,
作者: lgc黑马    时间: 2014-12-18 07:38
重复调用自己
作者: 惠惠惠惠惠    时间: 2014-12-18 10:23
大圈套小圈
作者: jxlovqqvo    时间: 2014-12-18 14:03
自己调用自己,当然得有出口,比如读取目录的时候就用这个

作者: 银离子    时间: 2014-12-18 18:16
你可以顺着语句执行的顺序理一理。
作者: 郝明明    时间: 2014-12-18 18:32
所谓递归调用就是一个函数直接或者间接地调用自身来完成一些操作,当然必须存在可以结束的条件限制,否则就成死循环了!
作者: dwy_hm    时间: 2014-12-18 21:47
本质是数学思想。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2