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);
}
}
}
}