递归的理解

如下图所示,它所对应的题目是第五个人比前一个大两岁,以此类推。已知第一个人的年龄是十岁。

1.第一步,执行n=5,对应else,但是并没有得出结果,即没有得到n=1时候的情景,所以应该继续往下走。
2.依次往下走,在执行n=1的时候,得出结果 第一个人的年龄是十岁,
3.但是程序并没有结束,我们要的结果应该是五个人的年龄,所以应该原路返回。看返回路线图。
4.一步一步的返回,最后得出所有人的年龄。

在这里,我们继续讨论程序在执行的时候,如何在内存中储存。
首先,我们先声明一点,递归的数据是在 中存储的,遵循后进先出的规则
age(5)先进去,在栈的最底下,依次,age(1)在最上面,最后递归的时候,n=1返回n=2的时候,age(1)从栈顶释放出去。
以此类推,最后都释放出去,得出五个人的年龄。

这些就是对于递归部分知识的理解。

递归的理解