1. Java中递归
class="java">
所谓递归(Recursion),就是方法调用自身。
对于递归来说,一定有一个出口,让递归结束,只有这样才能保证不出现死循环。
使用递归计算阶乘:
public class Test {
public static void main(String[] args) {
System.out.println(compute(6));
}
public static int compute(int number) {
if (1 == number) {
return 1;
} else {
return number * compute(number - 1);
}
}
}
2. 斐波那契数列
1、1、2、3、5、8、13、21、34、……
在数学上,斐波纳契数列以如下被以递推的方法定义:
F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)
public class Fibonacci {
public static void main(String[] args) {
System.out.println(compute(6));
}
public static int compute(int n) {
if (1 == n || 2 == n) {
return 1;
} else {
return compute(n - 1) + compute(n - 2);
}
}
}
3. 递归的使用
用递归方式删除一个非空的目录中的文件。
file.delete()删除目录时必须保证目录是空的。
import java.io.File;
public class FileTest9 {
public static void deleteAll(File file){
if (file.isFile() || file.list().length == 0) {
file.delete();
}
else {
File[] files = file.listFiles();
for(File f : files){
deleteAll(f);
f.delete();
}
}
}
public static void main(String[] args) {
deleteAll(new File("c:\\abc"));
}
}