36.递归

1.概述

 案例1:

public static void main(String[] args) {
        //不死神兔,求第20个月兔子的对数
        //每个月兔子对数:1,1,2,3,5,8,13.....
        System.out.println(new Digui().f(20));//6765
    }

    public int f(int n) {
        if (n==1||n==2) return 1;//递归出口
        return f(n - 1) + f(n - 2);//第n个月的兔子对数是前两个月兔子对数之和
    }

案例2:

    System.out.println(go(5));
    public static int go(int n){
        if (n==1)return 1;
        return n*go(n-1);
    }

 

 案例3:

遍历目录

goDir(file);
    public  static void goDir(File file){
        if (file.isDirectory()){
            for (File f:file.listFiles()){
                System.out.println(f.getAbsolutePath());
                goDir(f);
            }
        }else {
            System.out.println(file.getAbsolutePath());//出口
        }
    }

猜你喜欢

转载自www.cnblogs.com/luzhanshi/p/13174023.html