一.什么是递归?
简单点讲递归就是自己调用自己
二.递归有什么用?
递归比较经典的案例有:阶乘 斐波那契数列
三.阶乘代码演示:
public class Recursion {
//递归 自己调用自己
public static void main(String[] args) {
//调用
System.out.println(factorial(5));
}
//阶乘演示
//0! = 1
//1! = 1
//2! = 2*1
//3! = 3*2*1
//4! = 4*3*2*1
//5! = 5*4*3*2*1
//如上可以推断出,除了0!都符合:
//n! = n*(n-1)!
//阶乘方法如下: 参数n代表要算几的阶乘
public static int factorial(int n){
if(n==0){
return 1;
}else {
return n*factorial(n-1);
}
}
}
输出结果:
四.斐波那契数列代码演示:
public class Recursion {
//递归 自己调用自己
public static void main(String[] args) {
//调用
System.out.println(fib(7));
}
//斐波那契数列:
//什么是斐波那契数列:
//0 1 1 2 3 5 8 13 21 34 ....
//一个数列,从第三个数开始往后,某个数等于它前两个数之和
//Fib(n)=Fib(n-1)+Fib(n-2)
//参数 n 代表第n+1个数
public static int fib(int n){
if(n==0){
return 0;
}else if(n==1){
return 1;
}else{
return fib(n-1)+fib(n-2);
}
}
}
输出结果: