1.什么是递归
递归是一种编程模式,用于一个任务可以被分割为多个相似的更简单的任务的场景。或者用于一个任务可以被简化为一个容易的行为上更简单的任务变体。或者像我们随后会看到的,用来处理特定类型的数据结构。
当一个函数解决一个任务时,在该过程中它可以调用很多其他函数。那么当 一个函数调用自身时 ,就称其为递归。
简单点:就是函数调用自身——>递:传递 归:回归
递归的表现:函数调用自己
递归的用处:将大型复杂问题化解为若干小问题进行求解
递归的好处:代码量少
递归的弊端:占空间,函数是基于栈内存运行的
递归的要素:前进段、边界条件、返回段
通俗点——我们可以把” 递归 “比喻成 “查字典 “,当你查一个词,发现这个词的解释中某个词仍然不懂,于是你开始查这第二个词。
可惜,第二个词里仍然有不懂的词,于是查第三个词,这样查下去,直到有一个词的解释是你完全能看懂的,那么递归走到了尽头,然后你开始后退,逐个明白之前查过的每一个词,最终,你明白了最开始那个词的意思。
2.递归的用法
1)如何用递归求1-100的和?
①你需要了解这个函数要干嘛?(不需要管代码是什么,你得清楚这个函数是干嘛用的)
假设f(n)=1+2+3+···+99+100——>求前100个数的和
//计算前1-100的和
public static int f(int n){
}
②寻找递归结束的条件
所谓递归,就是会在函数内部代码中,调用这个函数本身,所以,我们必须要找出递归的结束条件,不然的话,会一直调用自己,进入无底洞。也就是说,我们需要找出当参数为啥时,递归结束,之后直接把结果返回