任何一个方法既可以调用其他方法,又可以调用自己,当这个方法调用自己的时候,就是递归方法或者递归函数
递归两个特点:
1.递归方法一直会调用自己,直到某些条件满足时停止,也就是说一定要有出口;
2.递归方法会有一些参数,而他会把这些新的参数传递给自己。
递归常用场景——阶乘
- 阶乘是指小于某个数正整数之之积,关键字:!;例如:3!= 3 * 2!= 3 * 2 * 1 = 6;
- 0的阶层为1;
- n的阶乘实际上就是n-1的阶乘乘以n,公式为: n! = n * (n-1)!;
利用递归方法求某数的阶乘:
public int Factorial(int n){ if(n == 0) { return 1; } else { return n*Factorial(n-1); } }
递归常用场景——斐波拉契数列
斐波拉契数列(Fiboracci)规律为:后一个数等于前两个数之和。
公式:如果F0 = 0,且 F1 = 1,则Fn = F(n-1) + F(n-2);
利用递归方法列出斐波拉契数列数列:
public int Fiboracci(int n ){ if(n == 0 || n == 1){ return n; }else{ return Fiboracci(n-2) + Fiboracci(n-1); } }