一、什么是递归呢?
递归举例:
从前有一座山,山里有座庙,庙里有个老和尚,老和尚在给小和尚讲故事:
从前有一座山,山里有座庙,庙里有个老和尚,老和尚在给小和尚讲故事:
从前有一座山,山里有座庙,庙里有个老和尚,老和尚在给小和尚讲故事:
。。。。。。。
故事如何才能结束:小和尚还俗了。庙塌了。山崩了。
Java中的递归:
在方法的函数体中又调用了方法自己本身。
递归调用的细节:必须要求递归中有可以让函数调用的结束条件。否则函数一直调用,就会导致内存溢出。
二、递归累和
计算1 ~ 5的和
练习1:需求:计算1~5的和值,不许使用循环。
实现代码:
public class DiGuiDemo {
public static void main(String[] args) {
//计算1~5的和,使用递归完成
int n = 5;
// 调用求和的方法
int sum = getSum(n);
// 输出结果
System.out.println(sum);
}
/*
通过递归算法实现.
参数列表:int
返回值类型: int
*/
public static int getSum(int n) {
/*
n为1时,方法返回1,
相当于是方法的出口,n总有是1的情况
*/
if(n == 1){
return 1;
}
/*
n不为1时,方法返回 n +(n-1)的累和
递归调用getSum方法
*/
return n + getSum(n-1);
}
}
代码执行图解
<