一、程序调用自身的编程技巧称为递归( recursion)。
二、递归实例
- 阶乘:
要求:给定一个数值,计算出它的阶乘值,例如5的阶乘为5*4*3*2*1
public class RecursionTest {
public static void main(String[] args) {
System.out.println(Method(5));
}
public static int Method(int n) {
if (n == 1) {
return 1;
} else {
return n * Method(n - 1);
}
}
}
开始递回 2*1
开始递回 3*(2*1)
开始递回 4*(3*(2*1))
开始递回 5*(4*(3*(2*1)) ) = 120
程序输出120;
- Fibonacci(斐波那契)数列
要求:1 1 2 3 5 8 13….
public class FibonacciTest {
public static void main(String[] args) {
System.out.println("20个数的斐波那契数列为:");
for(int i=1;i<20;i++){
System.out.print(Foo(i)+" ");
}
}
public static int Foo(int i){
if (i==0 || i==1){
return i;
}else{
return Foo(i - 1)+Foo(i - 2);
}
}
}