zoukankan      html  css  js  c++  java
  • 如何理解递归?

    /*
     * 理解递归的真正含义:当运行到调运自身时先停止执行后边的代码 重新调用自身当所有调用自身的代码运
     * 行完成后再重新按栈的形式重新由后向前一次调用自身之后的代码
     * 特点:递归调用很容易导致占用大量的空间,递归的效率不高
     * 
     * 下列代码中通过输出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 

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

    人真是奇怪,非得走到最后一步,是不会觉悟的。但是到了最后一步,又觉得太晚了。
  • 相关阅读:
    react之引用echarts
    vue之生命周期
    算法之冒泡排序
    算法之快速排序
    算法题之统计字符串中出现最多的字母
    使用http-proxy-middleware 代理跨域
    div产生的滚动条返回顶部
    Django实战(18):提交订单
    Django实战(17):ajax !
    Django实战(16):Django+jquery
  • 原文地址:https://www.cnblogs.com/boWatermelon/p/6423681.html
Copyright © 2011-2022 走看看