递归练习题

不死神兔

package com.liushuaishuai;
/*
不死神兔递归
 */

public class DiGuiDemo {
    public static void main(String[] args) {
        System.out.println(f(20));
    }

    public static int f(int n) {
        if (n == 1 || n == 2) {
            return 1;
        } else {
            return f(n - 1) + f(n-2);
        }


    }
}

 求阶乘

package com.liushuaishuai;

public class DiGuiDemo02 {
    public static void main(String[] args) {
        System.out.println(Factorial(4));
    }

    public static int Factorial(int n) {
        if (n == 1) {
            return 1;
        } else {
            return n * Factorial(n - 1);
        }
    }
}

 遍历目录

package com.liushuaishuai;

import java.io.File;

public class DiGuiDemo03 {
    public static void main(String[] args) {
        File srcFile = new File("C:\java");

                //调用方法
                getFile(srcFile);
    }

    public static void getFile(File file) {
        //获取给定目录下所有的文件或目录
        File[] filearray = file.listFiles();
        if (filearray != null) {
            for (File s : filearray) {
                //判断File对象是否是目录
                if(s.isDirectory()) {
                    getFile(s);
                    //是:递归调用
                } else {
                    System.out.println(s.getAbsolutePath());
                }
                }
        }
    }


}
原文地址:https://www.cnblogs.com/lsswudi/p/11419211.html