package com.zwj.java; import java.io.File; // 递归的讲解 public class HelloWorld { public static void main(String[] args) { // System.out.println( method(5)); // System.out.println(forImport(6)); tree(new File("D:/workspace"),0); } public static int method(int n){ if(n==1) return 1; else return n*method(n-1); } /* 递归调用指在方法执行过程中出现该方法本身的调用例如: 求 Fibonacci 数列:1.1.2.3.5.8,、、第40个数的值。 数列满足递推公式: F1=1,F2=1 fn=fn-1+ fn-2 (n>2) */ public static int f(int n){ if (n==1||n==2) return 1; else return f(n-1)+f(n-2); } /** * 用for循环的实现 */ public static long forImport(int n){ if (n==1||n==2) return 1; long f1=1L; long f2=1L; long f=0; for (int i=2;i<n;i++){ f=f2+f1; f1=f2; f2=f; } return f; } /** * 递归文件夹和文件名 * */ private static void tree(File file,int lever){ File[] child=file.listFiles(); String preStr=""; for (int i=0;i<lever;i++) preStr += " "; for (int i=0;i<child.length;i++){ System.out.println(preStr+child[i]); if (child[i].isDirectory()){ tree(child[i],lever+1); } } } }