提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
提示:这里可以添加本文要记录的大概内容:
”递归“,在Java学习中存在着一定的难度,以下由我所总结关于”递归‘的一些知识要点。
提示:以下是本篇文章正文内容,下面案例可供参考
一、递归是什么?
概念:一个方法在执行过程中调用自身。
特点:
- 起始条件("递"的结束条件,“归‘的 起始条件)
- 递归公式
必要条件:
- 将原问题划分成其子问题(子问题与原问题的解法相同)
- 有递归出口
二、递归的执行过程分析
例题:
求 3!,利用递归实现。
代码:
代码分析
起始条件 n==1
递归方程 n×fac(n-1)
—
三、递归中的内存:
当一个原方法在执行过程中,在栈帧中开辟内存fac(3),进入子方法后,开辟新的内存空间fac(2),执行fac(2)中,开辟fac(1)的内存空间,当fac(1)被return给fac(2)数字1 后,此时fac(1)的内存被销毁,fac(2)return给fac(3)数字2后,此时fac(2)内存被销毁。当fac(3)return temp==6时,fac(3),在栈中内存被销毁。