Java递归思想
小于 1 分钟
Java递归思想
什么是递归?
递归就是自己调用自己!!!!!!
- 递归思想通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。
- 包括两个部分:
- 递归头:什么时候不调用自身方法,如果没有头,将陷入死循环
- 递归体:什么时候需要调用自身方法
/*
阶乘
思路: 当 n == 1 时,返回n(递归到头,该开始层层往回return了)
当 n != 1 时,做乘法,同时层层递归,相当于f(n) * f(n-1),然后f(n-1)里面是f(n-1) * f(n-2)
所以最后相当于 f(n) * f(n-1) * f(n-2) * ... * f(1)
*/
public static int factorial(int n) {
if(n == 1) {
return n;
} else {
return n * factorial(n-1);
}
}注意
由于java是栈机制,如果在递归基数较小可以使用,如果基数较大很容易造成栈溢出
