一、递归
(一)、什么是递归
1、概念
一个方法在执行的过程中调用自己,就称为“递归”。
2、使用场景
通常把一个大型复杂的问题层层转化为一个原问题相似的规模较小的问题来求解。
3、优点
让代码简洁。
4、缺点
不太好理解。
5、核心
如何将原问题转换为子问题
(二)、递归实现条件
1、相同
对原问题来进行拆分,拆分成一个个的小问题,而且小问题还要与大问题解法要相同。
2、必须
必须要有递归的出口。
(三)、递归常见表现方法
1、问题本身就是递归的
2、数据类型是递归的gsai
3、概念是递归的
(四)、递归求1+2+3+4.....+N的和
1、图解
2、代码示例
public static long sum(int n){
if(n==1){
return 1;
}else{
return sum(n-1)+n;
}
}
public static void main(String[] args) {
System.out.println(sum(5));
}
(五)递归执行过程分析
1、递归求n 的阶乘
public static long fac(int n){
if (0==n||n==1){
return 1;
}else{
return fac(n-1)*n;
}
}
public static void main(String[] args) {
System.out.println(fac(4));
}