1.什么是递归算法
递归算法是一种将某个集合内有序数据需要进行的某种运算进行简单化,比如数的阶层,等比/等差数列的求和都可以使用递归算法将其简单化。
2.递归结构的内容
1)递归头:标示递归算法结束的一个代码块
2) 递归体:进行递归运算的代码块
3.看一下没有递归头的运行结果
package Recursion;
public class Test1 {
public static void a() {
System.out.println("This is method a()");
a();
}
public static void main(String[] args) {
a();
}
}
没有递归头的递归算法会报栈溢出的错误
这是因为方法a会被一直递进调用,而没有回归的过程(缺少一个回归的标记,也就是递归头),从而导致栈溢出
4.使用完整的递归算法计算10的阶层
public class Test1 {
public static long factorial(int n) {、
//递归头(递归算法进行回调的标记)
if(n==1)
return 1;
else
return n*factorial(n-1);
}
public static void main(String[] args) {
System.out.println(factorial(10));
}
}
因为有递归体的存在,所以递归算法可以成功回调
5.栈内运行的图画了再上传