码迷,mamicode.com
首页 > 其他好文 > 详细

如何真正的理解递归?

时间:2017-02-21 13:45:10      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:输出   通过   空间   nbsp   注意   []   停止   溢出   string   

/*
 * 理解递归的真正含义:当运行到调运自身时先停止执行后边的代码 重新调用自身当所有调用自身的代码运
 * 行完成后再重新按栈的形式重新由后向前一次调用自身之后的代码
 * 特点:递归调用很容易导致占用大量的空间,递归的效率不高
 * 
 * 下列代码中通过输出n的值理解递归调用其实就是堆栈的运用使用递归很容易造成堆栈溢出
 *  
 */
package arithmetic;

public class recursion {

    public static void main(String[] args) {
        (new recursion()).digui(10);
    }

    public void digui(int n){
        
        if (n > 0){
            n--;
            System.out.print("递归前: ");
            System.out.print(n+" ");
            digui(n);
            System.out.print("递归后: ");
            System.out.print(n+" ");
        }
        
    }
}

输出结果:递归前: 9 递归前: 8 递归前: 7 递归前: 6 递归前: 5 递归前: 4 递归前: 3 递归前: 2 递归前: 1 递归前: 0 递归后: 0 递归后: 1 递归后: 2 递归后: 3 递归后: 4 递归后: 5 递归后: 6 递归后: 7 递归后: 8 递归后: 9 

注意:一定要有终止条件。

如何真正的理解递归?

标签:输出   通过   空间   nbsp   注意   []   停止   溢出   string   

原文地址:http://www.cnblogs.com/boWatermelon/p/6423681.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!