常见的递归题目有:求阶乘、斐波那契数列、遍历文件夹等,今天先总结这么多,以后再加。
package com.zhou; import java.io.File; /** * 递归题目 * * @author user * */ public class Recursion { /** * 递归算阶乘 * * @param n * @return 第n个数的阶乘 */ public int factorial(int n) { if (1 == n) { return 1; } else { return n * factorial(n - 1); } } /** * 递归求斐波那契数列; * * @param n * 第几个数 * @return 第n个斐波那契数; */ public int fibonacci(int n) { if (1 == n || 2 == n) { return 1; } else { return fibonacci(n - 1) + fibonacci(n - 2); } } /** * 递归删除某个目录下所有文件; * * @param file */ public void deleteFiles(File file) { if (file.isFile() || file.list().length == 0) { file.delete(); } else { File[] files = file.listFiles(); for (File f : files) { deleteFiles(f); f.delete();// 如果f是文件夹,再删除f中所有文件后,再把f删除掉; } // file.delete(); 加上这句会删除这个目录; } } public static void main(String[] args) { Recursion r = new Recursion(); System.out.println(r.factorial(5)); System.out.println(r.fibonacci(8)); r.deleteFiles(new File("D:/PushPull3")); } }